home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / OS2 / MAG9DEMO.ZIP / MAGDOC.ZIP / MAGNUM.DOC
Encoding:
Text File  |  1996-04-01  |  799.9 KB  |  20,794 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                 Gilmore Systems "MAGNUM BBS (r) SYSTEM FOR OS/2"
  20.  
  21.                             Version 9.00, April 1996
  22.  
  23.                    (C)Copyright Gilmore Systems - 1989, 1996
  24.  
  25.                             - All rights reserved -
  26.  
  27.  
  28.  
  29.                                 Gilmore Systems
  30.                                 7354 Rubio Ave.
  31.                             Van Nuys, CA 91406 - USA
  32.  
  33.                              Voice: (818) 782-1870
  34.                                FAX: (818) 782-2093
  35.                                BBS: (818) 782-6290
  36.  
  37.                          E-mail: postmaster@gilmore.com
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.     First Printing: September, 1989
  47.      This Printing: April, 1996
  48.  
  49.     All programs and documentation written by: Chuck B. Gilmore
  50.                                                Gilmore Systems
  51.  
  52.     (C)Copyright Gilmore Systems, 1989, 1996 - All Rights Reserved
  53.  
  54.     No part  of this  publication may  be reproduced,  stored in a retrieval
  55.     system,  or  transmitted,  in  any  form  or  by  any means, electronic,
  56.     mechanical,  photocopying,  recording,  or  otherwise, without the prior
  57.     written permission of Gilmore Systems.
  58.  
  59.  
  60.                                    Disclaimer
  61.  
  62.     Gilmore Systems makes no  representations or warranties with  respect to
  63.     the contents hereof and specifically disclaims any implied warranties of
  64.     merchantability or fitness for any particular purpose.  Further, Gilmore
  65.     Systems  reserves  the  right  to  revise  this  publication and to make
  66.     changes from time  to time in  the content hereof  without obligation of
  67.     Gilmore Systems to notify any  such person of such revision  or changes.
  68.     Under  no  circumstances  will  Gilmore  Systems  or  the author be held
  69.     responsible for any  consequential or inconsequential  damages resulting
  70.     from the use or misuse of any furnished programs or documentation.
  71.  
  72.                           Artic is a trademark of IBM
  73.                   Digiboard is a trademark of Digiboard Corp.
  74.                 Hayes is a trademark of Hayes Computer Products
  75.           IBM is a trademark of International Business Machines, Inc.
  76.                    Intel is a trademark of Intel Corporation
  77.                   Magnum BBS is a trademark of Gilmore Systems
  78.                Microsoft is a trademark of Microsoft Corporation.
  79.                  MultiTech is a trademark of Multi Tech Systems
  80.                     OS/2 is a trademark of IBM and Microsoft
  81.                US Robotics and HST are trademarks of US Robotics
  82.  
  83.  
  84.  
  85.  
  86.  
  87.                 LICENSE AGREEMENT FOR "MAGNUM BBS" (r) FOR OS/2
  88.  
  89.   IMPORTANT: READ THE FRONT AND BACK OF THIS PAGE BEFORE USING THE DISKS. BY
  90.              OPENING THE DISK PACKAGING YOU SHOW YOUR AGREEMENT TO THE TERMS
  91.              OF THIS LICENSE!
  92.  
  93.   REFUND:
  94.      If you choose not to accept the terms of this license agreement, you may
  95.      obtain a full refund by returning this package to Gilmore Systems within
  96.      three (3) days, provided you have not opened the envelope containing the
  97.      program disk(s).
  98.  
  99.   DEFINITIONS:
  100.      The term "Software" as used in this agreement means the full system and
  101.      all utility computer programs contained on the disks in this package,
  102.      including any updates subsequently supplied by Gilmore Systems.
  103.      "Software Copies" refers to the actual copies of all or any portion of
  104.      the software, including back-ups, updates, merged or partial copies
  105.      permitted hereunder or subsequently supplied by Gilmore Systems.
  106.      "Related Materials" refers to all printed materials provided in this
  107.      package or later supplied by Gilmore Systems for use with the Software.
  108.  
  109.   USES NOT PERMITTED:
  110.  
  111.      You may not:
  112.  
  113.         Make copies of the Software, except as permitted below.
  114.  
  115.         Make copies of the Related Materials.
  116.  
  117.         Rent, lease, sub-license, or transfer the Software, Software Copies,
  118.         Related Materials or your rights under this license.
  119.  
  120.         Alter, reverse-engineer, disassemble or decompile the Software.
  121.  
  122.         Remove or obscure the Gilmore Systems copyright or trademark notices.
  123.  
  124.   PERMITTED USES:
  125.  
  126.      You may:
  127.  
  128.         Install the Software on a permanent storage device (hard disk drive)
  129.  
  130.         Make one working copy of the Software Program. If the working copy
  131.         will no longer work properly, the Licensee may make another working
  132.         copy of the Software Program but only if the inoperable working copy
  133.         is first destroyed. In addition, all the information appearing on the
  134.         original disk labels (including the copyright notice) must be copied
  135.         onto the working copy labels.
  136.  
  137.         Use the Software on a single computer or on a single workstation on a
  138.         network. Additional workstations utilizing the Software must be
  139.         licensed by Gilmore Systems. The network version may be used on
  140.         multiple computers that are connected by direct cable to the same
  141.         network server.
  142.  
  143.      This license gives you certain limited rights to use the Software. You
  144.      do not become an owner of the Software, and Gilmore Systems retains title
  145.      to all the Software, Software Copies and Related Materials.
  146.  
  147.  
  148.  
  149.  
  150.      Additionally, you agree to use reasonable efforts to protect the Software
  151.      from unauthorized use, reproduction, distribution or publication. All
  152.      rights not specifically granted in this license are reserved by Gilmore
  153.      Systems.
  154.  
  155.   DURATION:
  156.      This agreement is effective from the time you open the sealed disk
  157.      package. Your license continues for twenty-five (25) years or until you
  158.      return the original disks and any backup copies to Gilmore Systems,
  159.      whichever comes first.
  160.  
  161.      If you breach this agreement, Gilmore Systems can terminate this license
  162.      by notifying you in writing. You will be required to return all Software,
  163.      Software Copies, and Related Materials to Gilmore Systems. We can also
  164.      enforce our other legal rights.
  165.  
  166.   GENERAL:
  167.      This agreement represents our entire understanding and agreement
  168.      regarding the Software, Software Copies and Related Materials and
  169.      supersedes any prior purchase order, communications, advertising or
  170.      representations.
  171.  
  172.      This license may only be modified in a written ammendment signed by an
  173.      authorized Gilmore Systems officer. If any provision of this agreement
  174.      shall be unlawful, void or unenforceable for any reason, it shall be
  175.      deemed severable from, and shall in no way affect the validity or
  176.      enforceability of the remaining provisions of this agreement. This
  177.      agreement shall be governed by California law. You acknowledge that you
  178.      have read every provision of this contract. By opening the disk
  179.      packaging, you acknowledge that you have read and agree to this contract.
  180.  
  181.   LIMITATIONS:
  182.  
  183.      Gilmore Systems warrants to the original licensee that the original
  184.      program disk(s) housing the Software is free from defects in materials
  185.      and workmanship under normal use and service for a period of ninety (90)
  186.      days from the date of purchase. Gilmore System's entire liability and
  187.      your exclusive remedy shall be replacement of the disk(s) not meeting
  188.      this Limited Warranty if returned to Gilmore Systems during the 90 day
  189.      period.
  190.  
  191.      Except for the foregoing, this product is provided "as is" without any
  192.      warranty of any kind. The entire risk as to the results and performance
  193.      of the program is assumed by you. Gilmore Systems does not warrant,
  194.      guarantee, or make any representations regarding the use of, results of,
  195.      merchantability or fitness for a particular use of the product. Should
  196.      the program prove defective, you (and not Gilmore Systems) assume the
  197.      entire cost of all necessary servicing, repair or correction. Further,
  198.      Gilmore Systems does not warrant, guarantee, or make any representations
  199.      regarding the use of, or the results of the use of the program in terms
  200.      of correctness, accuracy, reliability, currentness, or otherwise; and you
  201.      rely on the program and results solely at your own risk. Gilmore Systems
  202.      will not be liable for any damages, including but not limited to system
  203.      damage, service, repair, correction, loss of profit, lost savings, or any
  204.      other incidental, consequential, or special damages of any nature
  205.      whatsoever resulting from the use or misuse of this product, or the
  206.      inability to use this product.
  207.  
  208.  
  209.  
  210.     Table of Contents                                                Page  1
  211.  
  212.  
  213.                                 TABLE OF CONTENTS
  214.  
  215.  
  216.   Table of Contents ........................................................ 1
  217.  
  218.   MAGNUM BBS (r) system for OS/2 ......................................... 1-1
  219.        Getting Started ................................................... 1-2
  220.        Optional add-on modules available from Gilmore Systems ............ 1-3
  221.        Configuring MAGNUM ==> start here <== ............................. 1-4
  222.        Configuring MAGNUM ................................................ 1-5
  223.        Compiling your STARTUP.n file(s) ................................. 1-34
  224.        The MODEL statement .............................................. 1-35
  225.        SPECIAL.n files: Detecting Error-Correction, FAX callers, etc .... 1-36
  226.  
  227.   Directory Structure of MAGNUM .......................................... 2-1
  228.        PROGRAM DIRECTORY (PGM_DIR) ....................................... 2-2
  229.        SESSION_DIRECTORY (SES_DIR) ....................................... 2-4
  230.        BULLETIN, MENU, HELP Directories (BUL_DIR, MNU_DIR, HLP_DIR) ...... 2-9
  231.        DISPLAY DIRECTORY (DSP_DIR) ...................................... 2-10
  232.        EXTERNAL DIRECTORY (EXT_DIR) ..................................... 2-12
  233.        RJE DIRECTORY (RJE_DIR) .......................................... 2-14
  234.        MSG,WORK,USER,SYSOUT Dirs (MSG_DIR,WORK_DIR,USER_DIR,SYSOUT) ..... 2-15
  235.        Order of Display Files ........................................... 2-17
  236.  
  237.   Running MAGNUM BBS ..................................................... 3-1
  238.        Starting MAGNUM BBS for the First Time ............................ 3-2
  239.        Starting Your FILES Database ...................................... 3-4
  240.        The MAGFILE.EXE Program (bulk file add) ........................... 3-5
  241.        The MAGDRIVE.EXE Program (CD-ROM Support) ......................... 3-7
  242.  
  243.   Customizing MAGNUM - Display Files/MILC Commands ....................... 4-1
  244.        Intro ............................................................. 4-2
  245.        Color Commands (@A) ............................................... 4-3
  246.        Branch (IF) Commands (@B) ......................................... 4-4
  247.        Screen Control Commands (@C) ...................................... 4-6
  248.        Date Conversion Function (@D) .................................... 4-10
  249.        External and RJE Program Execution Commands (@E) ................. 4-12
  250.        Miscellaneous @E commands ........................................ 4-15
  251.        Additional @E commands for 'Extended FileBase and MsgBase' ....... 4-18
  252.        Include File Commands (@I) ....................................... 4-19
  253.        Date Manipulation Commands (@J and @Y) ........................... 4-21
  254.        Call Command (@K) ................................................ 4-22
  255.        Security Level Commands (@L) ..................................... 4-23
  256.        Match Filename in FILE DATAbase (@M) command ..................... 4-24
  257.        Numeric (@N) Commands (ie: mathematics, I/O, etc) ................ 4-25
  258.        Other (Miscellaneous) Commands (@O) .............................. 4-30
  259.        Position (Label) Commands (@P) ................................... 4-33
  260.        Retain (@R), File (@F) and Query (@Q) MILC Variables @Z & @N ..... 4-34
  261.        Stack Keystrokes Command (@S) .................................... 4-36
  262.        Text to Log (activity) File (@T) ................................. 4-37
  263.        User Substitution Commands (@U) .................................. 4-38
  264.        View System Variables (@V) ....................................... 4-42
  265.        Wait Command (@W) ................................................ 4-44
  266.        String (@Z) Commands (ie: String Logic, I/O, etc) ................ 4-45
  267.  
  268.  
  269.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  270.  
  271.  
  272.  
  273.     Page  2                                                Table of Contents
  274.  
  275.  
  276.        Character Display - @\ command. .................................. 4-49
  277.        "Sysop Only" MILC commands: @$x, @&x, @!x, and @?x ............... 4-50
  278.        Advanced MILC Command Usage - Indirect Addressing ................ 4-52
  279.        Advanced MILC Command Usage - Enhanced Indirect Addressing ....... 4-54
  280.  
  281.   MAGNUM's Sysop Console ................................................. 5-1
  282.        Intro ............................................................. 5-2
  283.        The Bell, Forceoff, Switch and Info Commands ...................... 5-3
  284.        The "* auto" and "* noauto" commands .............................. 5-5
  285.        The level, print and lockout commands ............................. 5-6
  286.        The active, time, announce/normal, and logon commands ............. 5-7
  287.        The endnow, end, shutdown and msg commands ........................ 5-9
  288.        miscellaneous commands ........................................... 5-11
  289.        CHATting between SYSOP (you) and a USER via the Console .......... 5-17
  290.        Displaying a File with <F6> ...................................... 5-18
  291.        TEST Mode (Testing your modem) ................................... 5-19
  292.        Icon Control Commands ............................................ 5-20
  293.        Program Control Commands ......................................... 5-21
  294.  
  295.   Back to Display Files & Subdirectories ................................. 6-1
  296.        The PROGRAM DIRECTORY ............................................. 6-2
  297.        The SESSION DIRECTORY ............................................. 6-4
  298.        The BULLETIN DIRECTORY ........................................... 6-11
  299.        The MENU DIRECTORY ............................................... 6-12
  300.        The HELP DIRECTORY ............................................... 6-13
  301.        The DISPLAY DIRECTORY ............................................ 6-14
  302.        The EXTERNAL DIRECTORY ........................................... 6-16
  303.        The RJE DIRECTORY ................................................ 6-17
  304.        The MESSAGE SUBDIRECTORY ......................................... 6-18
  305.        The WORK SUBDIRECTORY ............................................ 6-19
  306.        The SYSOUT SUBDIRECTORY .......................................... 6-20
  307.        The USER SUBDIRECTORY ............................................ 6-21
  308.  
  309.   Using Magnum BBS as a USER ............................................. 7-1
  310.        Handles (Alias Names) ............................................. 7-3
  311.        The MAIN MENU ..................................................... 7-4
  312.        The MESSAGE MENU ................................................. 7-11
  313.        The FILES MENU ................................................... 7-18
  314.        The SYSOP MENU ................................................... 7-30
  315.        The RJE MENU ..................................................... 7-41
  316.  
  317.   Magnum's ACE (Automatic Command Execution) Event Handler ............... 8-1
  318.        Advanced ACE Usage ................................................ 8-6
  319.  
  320.   The MBBSEXEC Sysop Maintenance Utility Program ......................... 9-1
  321.        MBBSEXEC Field Names .............................................. 9-5
  322.        Field Names for the USER Database ................................. 9-6
  323.        Field Names for the MSG Database .................................. 9-9
  324.        Field Names for the FILE Database ................................ 9-10
  325.        Field Names for the RJE Database ................................. 9-12
  326.        Field Names for the UTILIZ Database .............................. 9-13
  327.        Syntax and Construction of an MBBSEXEC program ................... 9-14
  328.        The Assignment Statement ......................................... 9-16
  329.        Comparison Statements (IF) ....................................... 9-17
  330.  
  331.  
  332.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  333.  
  334.  
  335.  
  336.     Table of Contents                                                Page  3
  337.  
  338.  
  339.        Branch Statements (GOTO) ......................................... 9-18
  340.        Date Fields are Special Cases .................................... 9-20
  341.        Mathematics ...................................................... 9-21
  342.        Processing a Single User Instead of the Entire Database .......... 9-22
  343.        MBBSEXEC 'Simple' Summary ........................................ 9-25
  344.        MBBSEXEC Advanced Features ....................................... 9-29
  345.        MBBSEXEC Advanced Features - the EXIT statement .................. 9-30
  346.        MBBSEXEC Advanced Features -  Special Fields in USER  database ... 9-31
  347.        MBBSEXEC Advanced Features - #LOG_FILE: .......................... 9-32
  348.        MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters ... 9-33
  349.        MBBSEXEC Advanced Features - Strings, Binary & Console Output .... 9-37
  350.        MBBSEXEC Advanced Features - the INPUT() statement ............... 9-39
  351.        MBBSEXEC Advanced Features - the WHILE() statement ............... 9-40
  352.        MBBSEXEC Advanced Features - The } ELSE { statement .............. 9-41
  353.        MBBSEXEC Advanced Features - Indirect Addressing (Indexing) ...... 9-43
  354.        MBBSEXEC Advanced Features - Equating names for @TALLY/@STRING ... 9-45
  355.        MBBSEXEC Advanced Features -Writing/calling your own functions ... 9-46
  356.        MBBSEXEC Advanced Features -Setting the NEXT record to Process ... 9-49
  357.        MBBSEXEC Advanced Features - Executing an External Program ....... 9-50
  358.        MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data .... 9-51
  359.        MBBSEXEC Advanced Features-The EXTRACT() function ................ 9-54
  360.        MBBSEXEC Advanced Features - Sample .MEX Programs ................ 9-56
  361.        MBBSEXEC -- Program Summary (All Sections) ....................... 9-59
  362.  
  363.   Magnum Utility Programs ............................................... 10-1
  364.        MAGFUTIL.EXE (A Very Powerful File Maintenance Utility) .......... 10-2
  365.  
  366.   Supplied External and RJE Programs with Magnum BBS .................... 11-1
  367.  
  368.   The NotePad Facility .................................................. 12-1
  369.  
  370.   Setting up Additional Copies of Magnum on your LAN .................... 13-1
  371.        Remapping Directories for your Workstation ....................... 13-3
  372.  
  373.   For Systems using 'Extended File' and/or 'Extended MsgBase' ........... 14-1
  374.  
  375.   Magnum-to-Magnum Remote Mail (AMMO / RMAIL) ........................... 15-1
  376.  
  377.   Outside Mail .......................................................... 16-1
  378.        The QWK Message format: Offline Messaging, QWK 'Networking' ...... 16-2
  379.        The "Outside Mail" ID ............................................ 16-3
  380.  
  381.   Internet E-mail ....................................................... 17-1
  382.        General Info and Setup ........................................... 17-2
  383.        EMAILIN.EXE parameters ........................................... 17-7
  384.  
  385.   General and Closing Remarks ........................................... 18-1
  386.        General Remarks .................................................. 18-2
  387.        Closing Remarks .................................................. 18-3
  388.  
  389.   Index .................................................................. I-1
  390.  
  391.  
  392.  
  393.  
  394.  
  395.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.                          This Page Intentionally Blank
  429.  
  430.  
  431.  
  432.     MAGNUM BBS (r) system for OS/2                                 Page  1-1
  433.     Getting Started
  434.  
  435.  
  436.     Rather than waste time with the standard commentary of copying files and
  437.     creating directories, we'll  assume you know  what you're doing  since a
  438.     working knowledge  of OS/2  and it's  directory structure  is needed.  A
  439.     semi-automated  installation  program  is  included  which  will  create
  440.     install Magnum for you using the (intelligent) defaults built into it.
  441.  
  442.                                  What You Need
  443.  
  444.     You'll  need  an  IBM  or  compatible  computer  capable of running OS/2
  445.     version 1.2 or  above, OS/2 version  2.0 or above,  or OS/2 version  3.0
  446.     (Warp)  or  above.    The  most  reliable  versions  of OS/2 (as of this
  447.     writing) are versions 1.3, 2.1  and 3.0.  Computers utilizing  the Intel
  448.     8088, 8086 and 80186 microprocessors are not capable of running the OS/2
  449.     operating system.  Computers  utilizing the Intel 80286  microprocessors
  450.     can run OS/2  version 1.x but  not 2.x.   Computers utilizing the  Intel
  451.     80386, 80486  or Pentium  microprocessor can  run any  version of  OS/2.
  452.     OS/2 runs  in proctected  mode on  computers utilizing  the Intel 80286,
  453.     80386 or 80486 microprocessor.   You'll need approximately 5 Mb  RAM for
  454.     the operating  system plus  1 node,  500K RAM  for each  additional node
  455.     (these estimates are purposely high, you will probably need less).   You
  456.     will also need a modem for each node (your modem and cable must  support
  457.     CTS and RTS hardware handshaking,  and must be capable of  responding to
  458.     the DTR signal).  You will also need a text editor to configure Magnum's
  459.     STARTUP  files.    OS/2  version  1.2  is  the  minimum operating system
  460.     requirement for Magnum,  however, we recommend  using OS/2 version  1.3,
  461.     2.1, or 3.0 (Warp).  It doesn't matter if you're running SE or EE  (OS/2
  462.     1.x) or Extended Services (OS/2 2.x).
  463.  
  464.     NOTES
  465.  
  466.     The version you  have of MAGNUM  BBS is a  multi-node version (even  the
  467.     2-node version (1 dialup) is multi-node  in that a remote user plus  the
  468.     sysop at the console can be online simultaneously).  It can run with one
  469.     or more nodes.  IBM PS/2's can address COM1 thru COM3 with OS/2 1.x,  or
  470.     COM1 thru COM4 with OS/2 2.x. Non-PS/2's can only address COM1 and COM2.
  471.  
  472.     If you're using a version of Magnum that supports more serial ports than
  473.     the  operating  system,  you   will  need  IBM's  Artic   communications
  474.     coprocessor  card  and  Quadron  Service  Corp's OS/2 comm device driver
  475.     software (QCOM) to access the comports beyond COM2 (non-PS/2) or COM3 or
  476.     COM4 (PS/2).  Digiboard also supplies a communications coprocessor  card
  477.     and OS/2 device driver software.  Both the Artic and Digiboard cards are
  478.     available for AT and MicroChannel machines.
  479.  
  480.     If  you're  using  OS/2  2.x,  the  com device drivers supplied with the
  481.     operating system are  not very good  and can cause  unexpected problems.
  482.     We recommend using Ray Gwinn's com drivers which can be downloaded  from
  483.     our BBS  (the filename  is SIOxxx.ZIP  where xxx  is the current version
  484.     number - details are on our BBS).   Ray's drivers will support up to  16
  485.     serial ports.
  486.  
  487.     The version number on your Magnum distribution diskette reveals how many
  488.     nodes you have.   If your  version number is  9.00C5, the 5  after the C
  489.  
  490.  
  491.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  492.  
  493.  
  494.  
  495.     Page  1-2                                 MAGNUM BBS (r) system for OS/2
  496.                                                              Getting Started
  497.  
  498.  
  499.     means you have 5 nodes, node 5 being your local (console) node.
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  555.  
  556.  
  557.  
  558.     MAGNUM BBS (r) system for OS/2                                 Page  1-3
  559.     Optional add-on modules available from Gilmore Systems
  560.  
  561.  
  562.  
  563.                    Additional Incoming DIAL-UP Lines via LAN
  564.  
  565.     The  version  you  have  is  "LAN  ready".   You can purchase and set up
  566.     additional  copies  of  Magnum  BBS  to  be run on other workstations to
  567.     provide dial-up (modem)  support and share  the databases with  the main
  568.     BBS  (server).    Installing  the  same  copy  of  Magnum  BBS  at other
  569.     workstations will not work (each workstation requires its own serialized
  570.     copy of Magnum BBS software).   If you're installing more than one  copy
  571.     of Magnum BBS for your network, make sure your PROGRAM DIRectory, SYSOUT
  572.     DIRectory, and WORK  DIRectories (described later  in this chapter)  are
  573.     unique  for  each  workstation.    Contact  Gilmore  Systems for pricing
  574.     information relating to additional workstations.
  575.  
  576.         Additional Incoming LOCAL (modemless) Lines via LAN Pipe Modules
  577.  
  578.     The version you have is "LAN ready".  With the purchase of our  optional
  579.     Pipe Modules, you can log onto Magnum BBS from OS/2 or DOS workstations.
  580.     IBM's LAN Server,  Microsof'ts LAN Manager,  Banyan Vines, or  any other
  581.     LAN software supporting "named pipes"  will work with our pipe  modules.
  582.     With our pipe modules, any node(s) on your current BBS can be set up  as
  583.     a "pipe" node  instead of a  "modem" node to  allow pipe access.   Those
  584.     logging on  via "pipe",  are treated  as any  remote modem  caller, thus
  585.     system security is maintained.
  586.  
  587.                         Extended File and Message Bases
  588.  
  589.     Magnum BBS is supplied with the main MessageBase and FileBase (MsgBase 0
  590.     and FileBase 0) built in.  Each FileBase has 26 file 'areas' (A-Z),  and
  591.     each MsgBase has 26 message conference 'areas' (A-Z).  We offer both  an
  592.     'Extended MessageBase' and an  'Extended FileBase' module which  extends
  593.     Magnum's capabilities.  The 'Extended FileBase' module, extends Magnum's
  594.     FileBase capabilities from 1 FileBase of 26 areas to up to 256 FileBases
  595.     of 26  areas each  for a  total of  6,656 file  'areas'.   The 'Extended
  596.     MessageBase' module,  extends Magnum's  MessageBase capabilities  from 1
  597.     MessageBase of 26 message conference areas  to up to 256 MsgBases of  26
  598.     areas each for a total of 6,656 message conference 'areas'.
  599.  
  600.                                 CallBack Module
  601.  
  602.     For the ultimate  in security, our  optional CallBack module  will allow
  603.     Magnum to 'call back'  your users after they  log onto your system.   It
  604.     can  be  set  up  to  provide  'mandatory'  or 'courtesy' callback on an
  605.     individual basis (only those users you specify in a 'callback list' will
  606.     be considered for CallBack).  Although CallBack will work fine on a node
  607.     which  is  used  for  incoming  calls,  we  strongly recommend dedicated
  608.     CallBack node(s)  depending on  how much  the callback  facility will be
  609.     used.   In the  event that  all CallBack  nodes are  busy (in  use), the
  610.     CallBack module will queue up to 100 callers at a time for CallBack.
  611.  
  612.     Contact Gilmore Systems for pricing information on optional modules.
  613.  
  614.  
  615.  
  616.  
  617.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  618.  
  619.  
  620.  
  621.     Page  1-4                                 MAGNUM BBS (r) system for OS/2
  622.                                        Configuring MAGNUM ==> start here <==
  623.  
  624.  
  625.  
  626.     This document is  a guide to  help new Sysops  through the confusion  of
  627.     setting up a new BBS.
  628.  
  629.     Since experience has shown that all new BBS sysops want to start running
  630.     their new BBS program *yesterday*, we'll get right down to the  business
  631.     of system setup.
  632.  
  633.     Your hardware should enable you to run OS/2 version 1.2x, 1.3x, 2.xx  or
  634.     3.xx (Warp).  A safe memory requirement is 4-5 Mb just for the OS, 1  Mb
  635.     for the parent process + 1  node, and 500K for each additional  node you
  636.     wish to run.
  637.  
  638.     To get started, insert the Magnum distribution diskette in Drive A:   or
  639.     drive B:  (we'll assume drive A:).  Next, enter the following command at
  640.     an OS/2 command-line prompt:
  641.  
  642.        A:\MAGINST
  643.  
  644.     This will invoke the Magnum "Intelligent Installation" program.  It will
  645.     install  Magnum  for  you  on  your  hard  disk with a minimal amount of
  646.     questions.  After the program completes, you'll be able to log onto your
  647.     own "Magnum BBS" system via the console node.  Additional  configuration
  648.     and  modem  (dial-up)  configuration  can  be  completed  later  at your
  649.     convenience.
  650.  
  651.           -------------------------------------------------------------
  652.     NOTE: There are 10 Magnum configurations: 2-node, 3-node, 4-node,
  653.           5-node, 9-node, 13-node and 17-node, 25-node, 33-node and a 2-node
  654.           DEMO (number of dialups = nodes-1).
  655.           This manual assumes you are using the 4-node version (the most
  656.           popular).
  657.           The highest node number (2 for 2-node, 4 for 4-node, etc),
  658.           is the LOCAL (console) node.
  659.       ->  Since this document assumes 4-node version, ANY reference in <-
  660.       ->  this document to node 4 should be replaced with your high    <-
  661.       ->  node (2, 4, 9, for example).                                 <-
  662.           -------------------------------------------------------------
  663.  
  664.     After  you've  run  MAGINST.EXE  and  the  program completes, follow the
  665.     directions on the screen to start the BBS.  If you start the BBS from  a
  666.     full-screen OS/2 command prompt, the  BBS will run in full-screen  mode.
  667.     If you start  from an OS/2  command "window", the  BBS will run  in text
  668.     window.  We recommend running it in  a window so that you'll be able  to
  669.     monitor  it  from  your  desktop  rather  than  having  to switch to the
  670.     full-screen session.  If  you'll be running in  a text window, move  the
  671.     mouse pointer to the upper left  corner, click once on the left  button,
  672.     and choose "maximize" (for now).   You may also click on "font  size" to
  673.     adjust how much or how little space the window takes up on your screen.
  674.  
  675.     NOTE: Change your CONFIG.SYS file (usually in the root directory of your
  676.           drive C) to append the paths that appeared on your scren at the
  677.           end of the MAGINST.EXE program... you must REBOOT your system for
  678.  
  679.  
  680.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  681.  
  682.  
  683.  
  684.     MAGNUM BBS (r) system for OS/2                                 Page  1-5
  685.     Configuring MAGNUM
  686.  
  687.  
  688.           these changes to take effect.  If you do not know how to do this,
  689.           then switch to Magnum's PGM_DIR and run the command MAGPATH.CMD,
  690.           but only run it ONCE!  This will set the paths for the duration of
  691.           your OS/2 command session.  If you type EXIT to end the OS/2
  692.           command session, you'll need to run MAGPATH again prior to
  693.           starting your BBS.  It's much easier to append the permanent
  694.           paths to your PATH statement in your CONFIG.SYS file.
  695.  
  696.     Once started,  take note  that there's  a line  on the  screen that says
  697.     "Command =>  ". To  enter commands,  start with  either the  * key  or a
  698.     digit.  Enter the following command:
  699.  
  700.         * LOGON
  701.  
  702.     Follow it by pressing your ENTER key.  Magnum will now start your  local
  703.     logon session using your  console node.  When  logging on for the  first
  704.     time, enter your first name, optional middle name, and last name EXACTLY
  705.     the way you responded to these prompts during the installation  program.
  706.     This first logon initializes the system.  No name entry other than  what
  707.     matches that of the installation program will be accepted at this point.
  708.  
  709.     Once you've completed  the new user  logon procedure and  are within the
  710.     Main Menu, choose X  to enter the Sysop  Menu.  Once in  the Sysop menu,
  711.     choose U for User Database area.  Your user record should now be visible
  712.     on your screen.   Change your  time_remaining and time_period  fields to
  713.     give yourself more time on the  system (enter the full fieldname at  the
  714.     prompt, you  will then  be prompted  for a  new value  to place  in that
  715.     field).
  716.  
  717.     >>>>>>>>>>>>>>>>
  718.  
  719.     The installation program has set  up your local (console) node,  and has
  720.     set  up  your  1st  dial-up  node  (node  1)  for  you identically.  The
  721.     installation program made  your console node  "active", and your  node 1
  722.     "inactive"  (for  now).    The  installation program provided a "general
  723.     setup" for you.   The remainder of this  chapter will guide you  through
  724.     more detail of setting up the system such that it matches your needs.
  725.  
  726.     First, make certain  you are in  your PGM_DIR.   (ie:  d:\MAGNUM\PGM_DIR
  727.     where 'd:'  is the drive letter that Magnum was installed on).
  728.  
  729.     Just like  writing a  program or  a letter,  you need  a text  editor to
  730.     modify or create your configuration source files.  You can have up to  4
  731.     configuration text files with MAGNUM (remember, this manual assumes  the
  732.     4-node vesion... if  you have the  17-node version for  example, you can
  733.     have up to 17 configuration  files) with a filename format  of STARTUP.X
  734.     where  X  is  the  node  you  are  defining.    In other words, the file
  735.     STARTUP.1 defines  the node1  configuration, STARTUP.2  for node2,  etc.
  736.     STARTUP.4 (assume 4-node version) is not really a dial-in node, but  the
  737.     definition for the local (console)  or virtual comport.  The  DEVICENAME
  738.     for all STARTUP.x  files except STARTUP.4  (local node) specifies  which
  739.     device is to  be used for  that node (ie:   COM1, COM2,  etc).  Once you
  740.     have  modified  the  startup  file(s)  to  your liking, you will need to
  741.  
  742.  
  743.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  744.  
  745.  
  746.  
  747.     Page  1-6                                 MAGNUM BBS (r) system for OS/2
  748.                                                           Configuring MAGNUM
  749.  
  750.  
  751.     "compile"  these  configuration  files  with  MAGNUM's  BBS  compiler  -
  752.     MAKEMBBS.EXE but that will be at  a later point.  In the  meantime, lets
  753.     discuss the configuration text file itself.
  754.  
  755.     The installation program already  created STARTUP.1 and STARTUP.n  (n is
  756.     your console node:   4 in 4-node version,  13 in 13-node version,  etc).
  757.     To create a configuration file  for another node, simply copy  STARTUP.1
  758.     to STARTUP.x (x = new node  to configure), edit the file and  change the
  759.     NODE:  parm to  match that of the  node number, and change  the WORK_DIR
  760.     parm to be unique (and make sure you create that directory).  We'll  get
  761.     into this more later  on but for now  lets start with the  format of the
  762.     STARTUP.x file(s) themselves.  If you've already logged onto your BBS as
  763.     above, please log  off (if you've  not done so  already), and shut  down
  764.     your BBS by entering the command:
  765.  
  766.         * ENDNOW
  767.  
  768.     at the "Command => " prompt of the MBBS.EXE program (the same place you
  769.     entered * LOGON).
  770.  
  771.     For simplicity's sake, lets assume you  will set up your BBS with Node 1
  772.     for  starters.    You  will  need  to  get  the file STARTUP.1 into your
  773.     favorite text editor and begin modifying it.  You'll only need to create
  774.     STARTUP.x file(s) for the nodes you wish to have running at this time.
  775.  
  776.     IMPORTANT: > Although Magnum can be set up to work with your modem
  777.                  returning numeric or word result codes, numeric codes can
  778.                  be a time-consuming process to set up.
  779.                  For a speedy set up, where you needn't worry about result
  780.                  codes, have your modem return Verbose (word) results.
  781.                  Numeric result codes are returned when V0 appears anywhere
  782.                  in your modem init strings; Verbose (word) results are
  783.                  returned when V1 appears anywhere in your modem init
  784.                  strings. Some modems have a dip switch which may also need
  785.                  to be changed to match the type of result code (Numeric or
  786.                  Verbose) you wish.  VERBOSE (V1) IS THE PREFERRED METHOD!
  787.                > Make sure your modem responds to the DTR signal generated
  788.                  by the computer. Do NOT have the modem force the DTR signal
  789.                  high!
  790.                > Make sure your modem is set to pass Xon/Xoff characters
  791.                  thru as data - Magnum will perform Xon/Xoff processing as
  792.                  needed.
  793.  
  794.     Starting at the top  of the file (STARTUP.1)  and working our way  down,
  795.     lets go through each of the parameters.  All configuration commands  are
  796.     in the format of:
  797.  
  798.        KEYWORD:  PARM  ; Comment
  799.  
  800.     Simply, KEYWORD:  is the name of the field you are defining, PARM is the
  801.     value of the  field, and the  ; character starts  a comment.   A comment
  802.     starting with  the ;  character remains  a comment  for the remainder of
  803.     that text line.
  804.  
  805.  
  806.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  807.  
  808.  
  809.  
  810.     MAGNUM BBS (r) system for OS/2                                 Page  1-7
  811.     Configuring MAGNUM
  812.  
  813.  
  814.  
  815.     NOTE: The STARTUP.x file(s) are merely the human-readable form of your
  816.           node configuration(s).  These STARTUP.x file(s) must be "compiled"
  817.           into MBBSINIT.x file(s) with the supplied MAKEMBBS.EXE program to
  818.           convert them to a format that Magnum understands.  More on this at
  819.           the end of the this chapter, but first, the contents of the
  820.           STARTUP.x file(s) will be explained.
  821.  
  822.     In order, here are the keywords and what they mean:
  823.  
  824.     ACTIVE - this keyword tells MAGNUM whether or not you want this node to
  825.              be active. The acceptable parms are Y or N. If Y, then this
  826.              node will become active when MAGNUM starts up. If N, MAGNUM
  827.              will ignore this node and you are free to use the node for any
  828.              other program such as a communications program (MagCom or
  829.              TE/2 for example).  Note that the installation program placed
  830.              Y in this field for your console node, and N in this field for
  831.              your STARTUP.1 file.  If you wish to have node 1 active when
  832.              you start Magnum (ie: normally COM1), supply Y to this field,
  833.              otherwise N.
  834.  
  835.     MBBS_VERSION - this keyword will be used internally. You should leave
  836.                    this blank or accept the value already supplied. It will
  837.                    be automatically supplied when you "compile" the
  838.                    configuration.
  839.  
  840.     PARENT_SERNUM - this keyword expects a serial number for its parameter.
  841.                     If you're running a Magnum system on one machine and
  842.                     with no LAN (or LOCALBBS.EXE modules), then simply
  843.                     provide the serial number of your BBS system to this
  844.                     parm.  However, in preparation for a higher degree of
  845.                     network support, this parameter must be the serial
  846.                     number of your MAIN BBS system ...if you're running
  847.                     more than one Magnum system (MBBS.EXE) on two or more
  848.                     different machines networked together, then supply the
  849.                     MAIN serial# as this parameter for EACH STARTUP.x files
  850.                     on all machines. This also applies to all STARTUP.x
  851.                     files for the local logon modules (LOCALBBS.EXE) running
  852.                     on your network. Once you decide which serial# is to be
  853.                     considered your MAIN system, NEVER CHANGE THIS PARM!!
  854.                     Encryption of passowrds and messages is based on this
  855.                     serial number, so all systems accessing your databases
  856.                     must share the same PARENT_SERNUM.
  857.  
  858.     ENCRYPT_MAIL - this keyword expects a parameter of Y or N (for 'yes' or
  859.                    'no', respectively). If Y, then all messages entered on
  860.                    Magnum will be stored on disk in encrypted form. Magnum
  861.                    will automatically present the messages in readable form
  862.                    when being read by an authorized user. Because of the
  863.                    read/write access to subdirectories on networks
  864.                    containing Magnum messages (mail), encryption became
  865.                    necessary in order to preserve overall system security
  866.                    (ie: so that user's won't be able to write programs to
  867.  
  868.  
  869.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  870.  
  871.  
  872.  
  873.     Page  1-8                                 MAGNUM BBS (r) system for OS/2
  874.                                                           Configuring MAGNUM
  875.  
  876.  
  877.                    access the messages). Once you choose to activate message
  878.                    encryption, messages will be encrypted from that point on
  879.                    (or until you de-activate it). Messages entered without
  880.                    encryption (including all previous versions of Magnum)
  881.                    will remain unencrypted. If you use encryption for a
  882.                    while, then decide to change back to the non-encrypted
  883.                    fashion, the encrypted messages will remain encrypted
  884.                    (but will be transparent to you and your users).
  885.  
  886.     GEO_PRIVACY - this keyword expects a parameter of Y or N (for 'yes' or
  887.                   'no', respectively). If Y, then Magnum will enforce
  888.                   Geographic Privacy by not allowing the user's geographic
  889.                   information to be displayed when:
  890.                       1) Logging On (the "From City, State ? (Y/N) => "
  891.                          prompt supressed).
  892.                       2) Will supress geographic information from main
  893.                          menu's "[U]ser Search".
  894.  
  895.     INACTIVITY_TIMER - this keyword expects a number in the range of 180 to
  896.                        1800. This number will indicate the amount of time
  897.                        (in seconds) in which the system will automatically
  898.                        force a remote user off of the system due to
  899.                        inactivity. Prior to this version, 240 was
  900.                        hard-coded (4 minutes). Whatever number you choose,
  901.                        the system will issue a warning message to the remote
  902.                        user 60 seconds prior to the automatic logoff.
  903.                   NOTES: - For best results, supply a parameter which is a
  904.                            multiple of 60.
  905.                          - The inactivity timer applies once a user has
  906.                            actually logged onto the system. If the user has
  907.                            not responded the "Login" prompt within 3
  908.                            minutes, the system will terminate the session.
  909.                            A user is considered to be logged on if one of
  910.                            the following is true:
  911.                            - The user is an existing user (in user database)
  912.                              and has properly entered their password.
  913.                            - The user is a NEW user (not in user database)
  914.                              and has completed the new user initial
  915.                              questions, at which time the "ID /xxx
  916.                              successfully added to user database" message
  917.                              appears.
  918.  
  919.     TRACK_UTILIZATION - this keyword expects a parameter of Y or N (for Yes
  920.                         or No, respectively). If the parameter is Y,
  921.                         utilization tracking for that node of your BBS will
  922.                         be stored in a utilization database file UTILIZ.DAT
  923.                         in the SESSION DIRectory associated with that node.
  924.                         Supply Y to the TRACK_UTILIZATION: keyword in all
  925.                         STARTUP.x files who's nodes you want tracked.
  926.                         Utilization tracking is stored as one record for
  927.                         each session (logon) that takes place for any node
  928.                         who's TRACK_UTILIZATION: parm is set to Y.
  929.  
  930.  
  931.  
  932.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  933.  
  934.  
  935.  
  936.     MAGNUM BBS (r) system for OS/2                                 Page  1-9
  937.     Configuring MAGNUM
  938.  
  939.  
  940.     MBBS_MODEM - this is where you supply a short (up to 25 characters)
  941.                  description of your modem.
  942.  
  943.     MBBS_COUNTRY - this is where you supply the name of your country (up to
  944.                    20 characters). When new users log onto your system, this
  945.                    will be displayed to them as the default country when
  946.                    they are asked for their address information.
  947.  
  948.     DATEFORMAT - Supply a U for United States, or an E for European date
  949.                  formats. This is for reporting purposes - the date format
  950.                  your users choose is independent of this field.
  951.  
  952.     SERVERNAME - Optional. If you're using a LAN, supply the server name in
  953.                  this field, otherwise leave the field blank or don't supply
  954.                  the SERVERNAME: keyword at all. Although this field exists,
  955.                  it is not used by Magnum at this time.
  956.  
  957.     PRTY_CLASS - Optional. Allows you to change the priority class of a
  958.                  Magnum session. PRTY_CLASS can range from 0 to 4. 0 is
  959.                  generally not used since it indicates no change. 1 is the
  960.                  "Idle Time" class which is not recommended for BBS
  961.                  operation. 2 is the "Regular" class (the default).  3 is
  962.                  "time critical" which can seriously slow down all other
  963.                  sessions.  4 is the "Foreground" class.  Unless you're
  964.                  familiar with multi-tasking time classes and priorities,
  965.                  we suggest you not supply this keyword or any parameters.
  966.                  NOTE: This keyword is intended for system administrators
  967.                        fine-tuning Magnum when used with the optional
  968.                        Pipe Modules.
  969.  
  970.     PRTY_LEVEL - Optional. Allows you to change the priority level within a
  971.                  class. PRTY_LEVEL can range from 0 to 31.  0 is the lowest
  972.                  level of a time class, while 31 is the highest level. The
  973.                  lower the number, the lower the amount of time OS/2
  974.                  allocates to the program. Unless you're familiar with
  975.                  multi-tasking time classes and priority levels, we suggest
  976.                  you not supply this keyword or any parameters. The default
  977.                  will be level 0 for remote sessions, level 31 for console
  978.                  sessions.  The default is 0 for the console node, 10 for
  979.                  all other nodes.
  980.                  NOTE: This keyword is intended for system administrators
  981.                        fine-tuning Magnum when used with the optional
  982.                        Pipe Modules.
  983.  
  984.     YMODEMG - Accepts a parameter of Y or N. If Y, Magnum will allow all
  985.               users to be able to use the Ymodem-G protocol. If N, Magnum
  986.               will only allow those with Error-Correcting modems (ie: MNP4,
  987.               V.42, LAP, etc) to use Ymodem-G. Ymodem-G is a file transfer
  988.               protocol that relies on an error-correcting modem to perform
  989.               any error corrections. The nature of the protocol is to abort
  990.               if the modem does not correct an error. If your modem is set
  991.               up to return Numeric result codes, Magnum can ascertain
  992.               whether the remote caller is using an error-correcting modem.
  993.  
  994.  
  995.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  996.  
  997.  
  998.  
  999.     Page  1-10                                MAGNUM BBS (r) system for OS/2
  1000.                                                           Configuring MAGNUM
  1001.  
  1002.  
  1003.               If using Verbose (word) result codes, you can still ascertain
  1004.               whether its an error-correcting connection by creating the
  1005.               SPECIAL.n file(s) explained later.
  1006.  
  1007.     CMDIO - Optional. Value can range from 0 to 255. Refer to the definition
  1008.             of CHILDREN.BBS in chapter 2 and how to set the @N0 value for
  1009.             instructions on how to determine what the value should be. This
  1010.             value will be used to set how I/O is performed when CMD.EXE is
  1011.             run as a child of Magnum via the "[O]perating System/2"
  1012.             selection of the Sysop menu. If you leave out the CMDIO keyword,
  1013.             the default will be 5.
  1014.  
  1015.     VERBOSE_CONNECT - Optional. If you plan on using Verbose (word) result
  1016.                       codes (V1 appears somewhere in one of your modem init
  1017.                       init strings, and any related dip switches are set to
  1018.                       insure verbose (word) results on your modem). Most
  1019.                       modems return "CONNECT xxxxx" when a connection is
  1020.                       made. Some modems, however, return "CARRIER xxxxx" for
  1021.                       the baud rate of the connection (such as the Hayes
  1022.                       V-series and Ultra, for example). Depending on which
  1023.                       one your modem returns for baud rate connection,
  1024.                       you'll need to supply one of the following:
  1025.  
  1026.                              VERBOSE_CONNECT: CARRIER
  1027.  
  1028.                          or
  1029.  
  1030.                              VERBOSE_CONNECT: CONNECT
  1031.  
  1032.                       If you omit this field, Magnum will take whichever the
  1033.                       modem returns first (CARRIER or CONNECT) which may not
  1034.                       reflect an accurate baudrate. For example, Hayes
  1035.                       V-Series & Ultra return CONNECT xxxxx (where xxxxx is
  1036.                       the DTE baudrate, the speed of Your computer to Your
  1037.                       modem), and returns CARRIER xxxxx (where xxxxx is the
  1038.                       DCE baudrate, the speed of Your modem to the Remote
  1039.                       modem).
  1040.  
  1041.     ANNOUNCE_ONLY - the acceptable parms are Y or N. If Y, MAGNUM will treat
  1042.                     this node as an announce-only node. If N, MAGNUM will
  1043.                     treat this node as a regular BBS node. If announce only,
  1044.                     it will answer the phone, display a file you create and
  1045.                     hang up (See ANNOUNCE.x in chapter 2).
  1046.  
  1047.     NODE    - although the extension of the filename (STARTUP.1 for example)
  1048.               indicates which node you are configuring, this parameter is
  1049.               mandatory and acts as a double check. (Note: In previous
  1050.               versions this used to be the COMPORT parm - please note the
  1051.               change). IMPORTANT: You must also have unique WORK DIRectories
  1052.               for each STARTUP.x file (described later on for keyword
  1053.               WORK_DIR).
  1054.  
  1055.     DEVICENAME - This parameter is the name of the device you'll be using
  1056.  
  1057.  
  1058.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1059.  
  1060.  
  1061.  
  1062.     MAGNUM BBS (r) system for OS/2                                Page  1-11
  1063.     Configuring MAGNUM
  1064.  
  1065.  
  1066.                  for the serial port of this node. Device names are usually
  1067.                  COM1, COM2, etc but can be any other supported device
  1068.                  (ie: the Octoport card uses device names of AUX0, AUX1,
  1069.                  etc, Digiboard uses DIGI1, DIGI2, etc). This field accepts
  1070.                  up to 30 characters.  If you're running under a LAN
  1071.                  (ie: Lan Server for example), you can supply the name of a
  1072.                  redirected serial port.
  1073.  
  1074.     BAUDRATE - This parameter can range from 110 to 57600. The acceptable
  1075.                values are: 110, 150, 300, 600, 1200, 2400, 4800, 9600 and
  1076.                19200, 38400 and 57600.  This does not necessarily mean the
  1077.                modem's baud rate, but the speed with which the computer
  1078.                talks to your modem.  Some modems such as the USRobotics HST
  1079.                Couriers and the Multitech to name a few, can communicate
  1080.                with the DTE (computer) at a much higher baud rate than the
  1081.                actual baud rate of the modem over the phone lines.
  1082.  
  1083.                NOTE: As of this writing, the COM0x.SYS device driver
  1084.                      supplied with OS/2 1.x only supports a maximum of
  1085.                      19200.  The COM.SYS device driver supplied with OS/2
  1086.                      2.1 supports up to 57600 baud with Magnum.
  1087.                      If you're using a 3rd-party communications coprocessor
  1088.                      such as IBM's Artic Card in conjunction with Quadron
  1089.                      Service Corp's QCOM device driver, or if you're using
  1090.                      the Digiboard communications coprocessor in conjunction
  1091.                      with their OS/2 COM device driver software, you can
  1092.                      supply a value of up to 57600 baud in this field.
  1093.  
  1094.                  --> For those drivers supporting 115200 baud (115.2 KBaud),
  1095.                      you may supply 1152 to indicate 115.2 KBaud - your parm
  1096.                      MUST be supplied as 1152 (and NOT 115200 or 115.2).
  1097.                      Quadron's driver for the Artic card, and Ray Gwinn's
  1098.                      serial drivers support this baud rate.
  1099.  
  1100.     PARITY - for normal BBS communications, parity should be set to N
  1101.              (none). Other parms are E (even), O (odd), M (mark), S (space).
  1102.  
  1103.     DATABITS - for normal BBS communications, databits should be 8. Other
  1104.                choices are 7, 6 and 5.
  1105.  
  1106.     STOPBITS - for normal BBS communications, stopbits should be 1. Other
  1107.                choices are 1.5 and 2.
  1108.  
  1109.     WAITCARRIER - for normal communications, this should be 30, although
  1110.                   the acceptable range is 1 to 255. This is the number of
  1111.                   seconds Magnum waits for a result code from the modem
  1112.                   once it's answered the phone. If no response within the
  1113.                   time limit, it hangs up the phone and resets the modem
  1114.                   for the next caller. NOTE: If your modem uses the "AT"
  1115.                   command set, register S7 should match this parm.
  1116.  
  1117.     MODEMRESET - This is usually "AT Z" (without quotes). This is the string
  1118.                  your modem requires for a reset. IMPORTANT: Some modems are
  1119.  
  1120.  
  1121.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1122.  
  1123.  
  1124.  
  1125.     Page  1-12                                MAGNUM BBS (r) system for OS/2
  1126.                                                           Configuring MAGNUM
  1127.  
  1128.  
  1129.                  configurable as to wheter to reset from factory settings or
  1130.                  NRAM. Set your modem to reset from NRAM. If your modem is
  1131.                  not configurable and resets from factory settings, simply
  1132.                  leave this field blank!  If you're not sure, or things
  1133.                  aren't resetting right, leave this field blank!
  1134.                  THIS FIELD MAY OPTIONALLY BE BLANK.
  1135.  
  1136.     STARTUP1 - This is the initialization string for your modem. There are
  1137.                3 initialization strings. Every modem is different, and even
  1138.                identical modems can have different startup strings.  SEE THE
  1139.                FILE MODEMS.TXT ON YOUR MAGNUM DISTRIBUTION DISKETTE FOR SOME
  1140.                OF THE INITIALIZATION STRINGS FOR DIFFERENT MODEMS.
  1141.                Some older modems only accept 40-character strings.  Others
  1142.                accept 80 characters.  If you need more than this for your
  1143.                particular modem, that's the reason for the additional
  1144.                STARTUP2 and STARTUP3 fields - make sure you start each parm
  1145.                with AT if your modem uses the AT command set.
  1146.                THIS FIELD MAY OPTIONALLY BE BLANK.
  1147.  
  1148.            ->  NOTE 1: In any of these strings, ensure V1 appears if you
  1149.                        plan on using Verbose (word) results. Otherwise,
  1150.                        ensure that V0 appears if you plan on using Numeric
  1151.                        result codes. Also make sure that if your modem has
  1152.                        any dip swithces, that you set them to correlate
  1153.                        with V1 (word) or V0 (numeric) depending on choice.
  1154.  
  1155.             -> NOTE 2: For the fastest possible setup with minimal time
  1156.                        spent in your modem's user manual (especially if
  1157.                        all this is new to you) follow these steps:
  1158.  
  1159.                               a) Use Verbose result codes (V1 in any of
  1160.                                  your STARTUP strings).
  1161.  
  1162.                               b) Supply Y to the YMODEMG parm described
  1163.                                  earlier.
  1164.  
  1165.                               c) Delete all keywords starting with RC_nnnnn,
  1166.                                  ERC_nnnnn, ERCA_nnnnn, and ERCB_nnnnn. The
  1167.                                  n's merely represent digits. These
  1168.                                  keywords are described later in this
  1169.                                  chapter, and appear later on in your
  1170.                                  STARTUP.x file.
  1171.  
  1172.  
  1173.     STARTUP2 - see STARTUP1
  1174.     STARTUP3 - see STARTUP1 (this string usually ends with &W)
  1175.  
  1176.     REINIT - this is the command your modem needs to reinitialize itself
  1177.              after every caller. This is usually ATZ.  THIS FIELD MAY
  1178.              OPTIONALLY BE BLANK!
  1179.  
  1180.              NOTE: ATZ is interpreted differently on some modems than
  1181.                    others. To some modems, it means to reinitialize from
  1182.  
  1183.  
  1184.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1185.  
  1186.  
  1187.  
  1188.     MAGNUM BBS (r) system for OS/2                                Page  1-13
  1189.     Configuring MAGNUM
  1190.  
  1191.  
  1192.                    nonvolatile ram (NRAM or NVRAM), to others it means
  1193.                    to reset completely (factory settings). If you're not
  1194.                    sure, leave this field blank!
  1195.                    THIS FIELD MAY OPTIONALLY BE BLANK.
  1196.  
  1197.              NOTE: The MODEMRESET, STARTUP1, STARTUP2, STARTUP3 and REINIT
  1198.                    fields should be blank if you're setting up this node as
  1199.                    a "pipe node" or if setting it up via "null-modem cable"
  1200.                    (in other words, if you're setting up this node as a
  1201.                    non-modem node).
  1202.  
  1203.     ---<>--- IMPORTANT:
  1204.              ---------
  1205.  
  1206.         Your  modem  init  strings   within  your  STARTUP.x  file(s)   (ie:
  1207.         MODEMRESET, STARTUP1, STARTUP2, STARTUP3, REINIT, ANSWERCMD, ONHOOK,
  1208.         OFFHOOK), now allow you to  imbed a Magnum escape sequence  in order
  1209.         to send characters to your modem which you were unable to do before.
  1210.         The backslash  character (  \ )  starts this  escape sequence.   For
  1211.         example, if  you wish  to imbed  a semicolon  within your  ANSWERCMD
  1212.         string, your STARTUP.x file might look like this:
  1213.  
  1214.              ANSWERCMD: AT A\59F
  1215.  
  1216.         Note that the \ character is followed by 2 digits (59) which happens
  1217.         to be the ASCII decimal equivalent for the ; character, so what your
  1218.         modem would  really be  sent is:   AT  A;F The  ; character  was not
  1219.         possible to  include in  a string  prior to  this version because it
  1220.         denoted the start of a comment within your STARTUP.x files.  Another
  1221.         use might be to imbed a  CR (carriage return) character (ie:   \13),
  1222.         or a double-quote  ( " )  character (which is  \34).  Note  that the
  1223.         rules for using the \ character to denote an escape sequence are  as
  1224.         follows:
  1225.  
  1226.               Use the \ character as the beginning of an
  1227.               escape sequence.  If \\ appears, then a single
  1228.               \ character is sent.  If \ is followed by one
  1229.               or more digits (up to 3 digits maximum), then
  1230.               the ASCII character represented by the decimal
  1231.               value of the digits will be sent (ie: \13 will
  1232.               send a CR character.  If the \ is followed by
  1233.               a non-digit, that character will be sent.
  1234.  
  1235.         If  you  wish  to  send  a  "  followed by the character 5, then the
  1236.         following must be used:  \0345 because if you used:  \345 you'd send
  1237.         the ASCII character 345 (which doesn't exist - the range is  0-255).
  1238.         \0345 sends the " character followed by the character 5 because  the
  1239.         \ character uses up to (a maximum  of) 3 digits that follow it.   If
  1240.         you put a  node in TEST  mode (ie:   "1 TEST" at  the "Command =>  "
  1241.         prompt), you can  experiment with using  the \ character.   Anything
  1242.         you type in TEST  mode will be sent  to your modem, and  you will be
  1243.         able to see how your \ escape sequences are translated (you may have
  1244.         to issue AT E1 to enable echo mode).
  1245.  
  1246.  
  1247.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1248.  
  1249.  
  1250.  
  1251.     Page  1-14                                MAGNUM BBS (r) system for OS/2
  1252.                                                           Configuring MAGNUM
  1253.  
  1254.  
  1255.  
  1256.         The \ character immediately followed by a tilde char (~) tells
  1257.         Magnum to pause for 500 miliseconds (example:  \~\~ is a 1-second
  1258.         pause which is 2 500 milisecond pauses).
  1259.  
  1260.        ** IMPORTANT NOTE: If upgrading from a release prior to this feature,
  1261.                           if ANY of your modem strings within any of your
  1262.                           STARTUP.x file(s) contains the \ character, you'll
  1263.                           need to double it (ie: \\) in order to send the \
  1264.                           character to your modem.
  1265.     ---<>---
  1266.  
  1267.     DELAY1 - this is the delay (in miliseconds) of how long MAGNUM should
  1268.              wait after sending your STARTUP1 string before it should send
  1269.              the STARTUP2 string to your modem. This will vary with your
  1270.              CPU speed, modem, the speed with which your computer converses
  1271.              with your modem, and how fast your modem can process the
  1272.              string.
  1273.  
  1274.     DELAY2 - (see DELAY1) Specifies (in miliseconds) how long MAGNUM should
  1275.              wait after sending your STARTUP2 string before it should send
  1276.              the STARTUP3 string to your modem.
  1277.  
  1278.     DELAY3 - (see DELAY1) Specifies (in miliseconds) how long MAGNUM should
  1279.              wait after sending your STARTUP3 string before continuing.
  1280.  
  1281.              NOTE: If any of your STARTUPn fields are blank, use a minimal
  1282.                    time delay for the corresponding DELAYn field (ie: 50).
  1283.  
  1284.     DTELOCKED - as mentioned earlier, some modems can communicate with the
  1285.                 DTE (computer) at a much higher baudrate than they can over
  1286.                 the phone lines. For these modems, especially those with MNP
  1287.                 (Microcom Network Protocol), you can increase efficiency
  1288.                 (throughput) by locking the DTE. Answer Y to lock the DTE,
  1289.                 or N not to. If N, the DTE speed will match that of the
  1290.                 incoming callers baudrate.
  1291.  
  1292.               -> NOTE: If you're using a modem such as the US Robotics
  1293.                        Dual Standard, the Intel V.32, Hayes Ultra, or
  1294.                        just about any modem capable of v.32 (9600 baud)
  1295.                        communications, supply 19200 for the BAUDRATE parm
  1296.                        above, and Y to the DTELOCKED parm. If you'r using
  1297.                        a coprocessor card such as Artic or Digiboard,
  1298.                        supply 38400 baud to the BAUDRATE parm. See the
  1299.                        BAUDRATE parm described earlier in this chapter.
  1300.  
  1301.     ANSWERTYPE - Accepts a value of A, R or D. MAGNUM can be configured to
  1302.                  answer the phone, or it can let your modem answer the
  1303.                  phone. If you select A for auto-answer, your modem will
  1304.                  answer the phone and MAGNUM will respond once a
  1305.                  connection is established because the modem will send
  1306.                  MAGNUM a result code. If you select R for ring-detect,
  1307.                  MAGNUM will issue the command to the modem to answer the
  1308.  
  1309.  
  1310.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1311.  
  1312.  
  1313.  
  1314.     MAGNUM BBS (r) system for OS/2                                Page  1-15
  1315.     Configuring MAGNUM
  1316.  
  1317.  
  1318.                  phone.  Note that modems using the AT command set should
  1319.                  have S0=0 as part of their init strings if using answertype
  1320.                  of R; or S0=1 if answertype of A.
  1321.                  NOTE: If using the callback module, all incoming modem
  1322.                        nodes should be set to answer the phone via parm R
  1323.                        (ring detect)!
  1324.                  NOTE: Normally, you will not use D as an answertype.  D is
  1325.                        for Data-Carrier-Detect and is for use in specailized
  1326.                        situations.  This is is for certain WANs in which a
  1327.                        "modem" appears to be present, but only the presence
  1328.                        of a carrier is used to determine an incoming call.
  1329.                        The baudrate of the incoming call will always be
  1330.                        equal to the BAUDRATE parm.
  1331.  
  1332.     OPENMODE - Accepts a value of S or N. MAGNUM can open the communications
  1333.                ports as shared or nonshared. MAGNUM will work fine either
  1334.                way, however we strongly recommend that in a multitasking
  1335.                operating system such as OS/2, you choose N (nonshared).
  1336.                Choosing N guarantees that no other program will open the
  1337.                comport and ruin a session in progress. Choosing S will
  1338.                cause MAGNUM to open the port as shared, meaning any other
  1339.                program can also open that same comport.
  1340.  
  1341.     ANSWERCMD - Modem answer command string. For AT command sets (Hayes &
  1342.                 compatible), the command is ATA.
  1343.  
  1344.     ONHOOK - Modem command to go onhook (hang up). AT command sets: AT H0
  1345.  
  1346.     OFFHOOK - Modem command to go offhook (pick up the phone but don't
  1347.               answer it) - AT command sets: AT H1
  1348.               NOTE: If you wish to turn off the speaker at this point,
  1349.                     supply AT H1M0
  1350.  
  1351.     ESC_CMDMODE - the command string which places the modem in command mode.
  1352.                   AT command sets: +++
  1353.  
  1354.     ESC_GRDTIME - Guard time (in miliseconds) for the modem to recognize the
  1355.                   string for ESC_CMDMODE and place the modem in command
  1356.                   mode.
  1357.  
  1358.     GO_ONLINE - the command string which causes the modem to go back online
  1359.                 from a ESC_CMDMODE escape. AT command sets: AT O
  1360.  
  1361.     END_OFFHOOK - acceptable parms are Y or N. If Y (yes), the modem will
  1362.                   place the phone offhook when you decide to end the MAGNUM
  1363.                   BBS program (the modem must remain on in order for this
  1364.                   to work) by sending the commands you specified in the
  1365.                   OFFHOOK parameter described earlier.
  1366.                   If N (no), any remote callers will not get an answer -
  1367.                   the phone will continue to ring until the remote caller's
  1368.                   modem hangs up.
  1369.  
  1370.     --- IF you're using the "fast" setup (Verbose result codes, Y to the
  1371.  
  1372.  
  1373.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1374.  
  1375.  
  1376.  
  1377.     Page  1-16                                MAGNUM BBS (r) system for OS/2
  1378.                                                           Configuring MAGNUM
  1379.  
  1380.  
  1381.         YMODEMG keyword, and supplied the VERBOSE_CONNECT parameter),
  1382.         OR if you have a modem capable of speeds greater than 19200
  1383.         baud connect rates, then follow these steps:
  1384.  
  1385.            a) Supply N to the ERRORCHECK keyword (ie:   ERRORCHECK: N)
  1386.  
  1387.            b) Delete (deletion is optional) all keywords starting with
  1388.               RC_ or ERC_ or ERCA_ or ERCB_, and disregard the description
  1389.               of those keywords below.
  1390.  
  1391.     RC_110 - result code returned by the modem for a 110 baud connection
  1392.     RC_150 - result code returned by the modem for a 150 baud connection
  1393.     RC_300 - result code returned by the modem for a 300 baud connection
  1394.     RC_600 - result code returned by the modem for a 600 baud connection
  1395.     RC_1200 - result code returned by the modem for a 1200 baud connection
  1396.     RC_2400 - result code returned by the modem for a 2400 baud connection
  1397.     RC_4800 - result code returned by the modem for a 4800 baud connection
  1398.     RC_9600 - result code returned by the modem for a 9600 baud connection
  1399.     RC_12000 - result code returned by the modem for a 12000 baud connection
  1400.     RC_14400 - result code returned by the modem for a 14400 baud connection
  1401.     RC_16800 - result code returned by the modem for a 16800 baud connection
  1402.     RC_19200 - result code returned by the modem for a 19200 baud connection
  1403.  
  1404.     ERRORCHECK - answer Y (yes) to indicate an error-correcting modem is
  1405.                  being used (ie: a modem with MNP,ARQ and/or LAP protocol),
  1406.                  otherwise answer N (no).
  1407.  
  1408.     ERC_110 - modem result code for error-correction connect at 110 baud
  1409.     ERC_150 - modem result code for error-correction connect at 150 baud
  1410.     ERC_300 - modem result code for error-correction connect at 300 baud
  1411.     ERC_600 - modem result code for error-correction connect at 600 baud
  1412.     ERC_1200 - modem result code for error-correction connect at 1200 baud
  1413.     ERC_2400 - modem result code for error-correction connect at 2400 baud
  1414.     ERC_4800 - modem result code for error-correction connect at 4800 baud
  1415.     ERC_9600 - modem result code for error-correction connect at 9600 baud
  1416.     ERC_12000 - modem result code for error-correction connect at 12000 baud
  1417.     ERC_14400 - modem result code for error-correction connect at 14400 baud
  1418.     ERC_16800 - modem result code for error-correction connect at 16800 baud
  1419.     ERC_19200 - modem result code for error-correction connect at 19200 baud
  1420.  
  1421.     ERCA_110   \     Some modems require additional error-correcting result
  1422.     .           \ __ codes (ie: a different one for MNP, one for LAP, etc).
  1423.     .           /    If your modem requires additional codes, they go here.
  1424.     ERCA_19200 /     Leave blank if not used by your modem.
  1425.  
  1426.     ERCB_110   \     Some modems require additional error-correcting result
  1427.     .           \ __ codes (ie: a different one for MNP, one for LAP, etc).
  1428.     .           /    If your modem requires additional codes, they go here.
  1429.     ERCB_19200 /     Leave blank if not used by your modem.
  1430.  
  1431.  
  1432.     - - - Directory Paths - - -
  1433.  
  1434.  
  1435.  
  1436.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1437.  
  1438.  
  1439.  
  1440.     MAGNUM BBS (r) system for OS/2                                Page  1-17
  1441.     Configuring MAGNUM
  1442.  
  1443.  
  1444.     Now we can go  into the BBS directory  paths.  Directory paths  are FULL
  1445.     paths including the drive letter.  For instance, E:\MAGNUM\PGM_DIR is  a
  1446.     valid pathname, while  MAGNUM\PGM_DIR is invalid  (no drive and  no root
  1447.     path).  Not every  path has to be  unique, although we recommend  it for
  1448.     maintenance sake, but technically you can use the same path in more than
  1449.     one  place.    Each  pathname  can  be  up  to  65  characters in length
  1450.     (including the drive letter).  You can optionally end your pathname with
  1451.     the \ character but it doesn't matter - if you don't, MAGNUM appends one
  1452.     internally anyway.
  1453.  
  1454.     PROGRAM_DIR - This defines the directory which holds the actual MAGNUM
  1455.                   BBS program(s). We use E:\MAGNUM\PGM_DIR
  1456.                   NOTE: The PROGRAM_DIR parm should be on the same logical
  1457.                         drive as the WORK_DIR parm (below).
  1458.  
  1459.     SESSION_DIR - This defines the directory which holds session data. We
  1460.                   use E:\MAGNUM\SES_DIR
  1461.  
  1462.     BULLETIN_DIR - This defines the directory which holds bulletins and
  1463.                    newsletters. We use E:\MAGNUM\BUL_DIR
  1464.  
  1465.     MENU_DIR - This defines the directory whcih holds any menus you create.
  1466.                We use E:\MAGNUM\MNU_DIR
  1467.  
  1468.     HELP_DIR - This defines the directory which holds the help files. We use
  1469.                E:\MAGNUM\HLP_DIR
  1470.  
  1471.     DISPLAY_DIR - This defines the directory which holds the display files.
  1472.                   We use E:\MAGNUM\DSP_DIR
  1473.  
  1474.     EXTERNAL_DIR - This defines the directory which holds external programs.
  1475.                    We use: E:\MAGNUM\EXT_DIR
  1476.  
  1477.     RJE_DIR - This defines the directory which holds RJE specific stuff.
  1478.               We use: E:\MAGNUM\RJE_DIR
  1479.  
  1480.     MSG_DIR - This defines the directory which is the parent to the message
  1481.               subdirectories. We use: E:\MAGNUM\MSG_DIR
  1482.  
  1483.     WORK_DIR - This defines MAGNUM's work directory. We use:
  1484.                   E:\MAGNUM\WORK_DIR\1   for node 1 (STARTUP.1),
  1485.                   E:\MAGNUM\WORK_DIR\2   for node 2 (STARTUP.2), etc.
  1486.                NOTES: - Each node should have its own, unique WORK_DIR
  1487.                       - The WORK_DIR should be on the same logical drive
  1488.                         as the PROGRAM_DIR
  1489.  
  1490.     USERS_DIR - This defines the directory MAGNUM uses for logging answers
  1491.                 for user-generated questionairres, user NotePads, and
  1492.                 Extended Msg & File pointers.  We use: E:\MAGNUM\USER_DIR
  1493.  
  1494.     SYSOUT_DIR - This defines the directory for system output (ie: Activity
  1495.                  logs, chat logs, user responses to questionnaires, etc).
  1496.  
  1497.  
  1498.  
  1499.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1500.  
  1501.  
  1502.  
  1503.     Page  1-18                                MAGNUM BBS (r) system for OS/2
  1504.                                                           Configuring MAGNUM
  1505.  
  1506.  
  1507.     Now comes the file directories.  As with the other directories, you have
  1508.     up to 65 characters each, and must include a full path including  drive.
  1509.     You can have up to 26 file directories labeled A to Z. You should try to
  1510.     give  descriptive  names  to  the  directories.   The keywords for these
  1511.     entries are FILEDIR_A  thru FILEDIR_Z.   See the example  STARTUP.X file
  1512.     for the way we use them.
  1513.  
  1514.     After defining  the file  subdirectories above,  you now  need to define
  1515.     descriptions.    You  have  up  to  40  characters  each to describe the
  1516.     contents of  the directories.   You  can have  up to  26 file  directory
  1517.     descriptions.    The  keywords  for  these  entries  are  FILEDES_A thru
  1518.     FILEDES_Z.  See the example STARTUP.X file for the way we use them.
  1519.  
  1520.     You  can  have  up  to  26  message  areas  labeled  A  thru Z. Whatever
  1521.     subdirectory you supplied for the MSG_DIR parm, the installation program
  1522.     (MAGINST.EXE) will create 26 subdirectories under the MSG_DIR directory.
  1523.     (ie:    E:\MAGNUM\MSG_DIR\A  ...    E:\MAGNUM\MSG_DIR\Z).    More on the
  1524.     MAGINST.EXE  program  later  -  for  now,  the completion of editing the
  1525.     STARTUP.X files is crucial.
  1526.  
  1527.     Like  the  FILEDES_x  parm,  the  MSGDES_x  parm  is  similar.  You give
  1528.     descriptive headings  for each  of the  MSGDES_x parms  (up to  40 chars
  1529.     each).  See our STARTUP.x file(s) for examples of how we use them.
  1530.  
  1531.     Now comes the BBS Parameters:
  1532.  
  1533.     BBS_NAME - this is where you give your BBS a name (up to 40 characters).
  1534.  
  1535.     BBS_STARTED - this is where you tell MAGNUM what date you'd like MAGNUM
  1536.                   to show users as the starting date of the BBS.
  1537.  
  1538.     TTL_CALLS - this is where you tell MAGNUM how many calls your BBS has
  1539.                 taken at the time of this creation. Ordinarily this would be
  1540.                 0, but some sysops switching systems want to display how
  1541.                 many calls THEY'VE had - not this particular software.
  1542.  
  1543.     SYSOP_FIRST - the sysop's first name
  1544.  
  1545.     SYSOP_MIDDLE - the sysop's middle name or initial (LEAVE BLANK IF NONE)
  1546.  
  1547.     SYSOP_LAST - the sysop's last name
  1548.  
  1549.     PAGING_BEGIN - the sysop's beginning paging time (in seconds from
  1550.                    midnight). To calculate seconds from midnight (00:00),
  1551.                    take the desired time in military format (ie: HH:MM or
  1552.                    14:30 for example) and use the formula (HH * 3600) +
  1553.                    (MM * 60).
  1554.  
  1555.     PAGING_END - the sysop's ending paging time (in seconds from midnight).
  1556.                  See the description of PAGING_BEGIN to derive seconds from
  1557.                  midnight.
  1558.  
  1559.     OPEN_BOARD - Y=sysop is running an open board (anyone can call). N=sysop
  1560.  
  1561.  
  1562.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1563.  
  1564.  
  1565.  
  1566.     MAGNUM BBS (r) system for OS/2                                Page  1-19
  1567.     Configuring MAGNUM
  1568.  
  1569.  
  1570.                  is running a closed board - sysop must pre-enter the users
  1571.                  who are allowed access to the board. Pre-entering users in
  1572.                  a closed system is accomplished by setting up the local
  1573.                  node as an open system, and logging on from the console as
  1574.                  the new user.
  1575.  
  1576.     REUSE_DEL -  If you delete users, this option will let you assign a new
  1577.                  user to an old user's ID. Answer Y to re-use deleted ID's.
  1578.                  Answer N not to re-use deleted ID's. Bear in mind that
  1579.                  Magnum's user database is not packable, meaning that if you
  1580.                  have deleted users they will remain as deleted users
  1581.                  forever (or until you change this parameter to Y and
  1582.                  recompile the STARTUP.x file with the MAKEMBBS.EXE
  1583.                  program). If you'll be setting this field to Y (yes), users
  1584.                  will only be re-used if:
  1585.                      - They are deleted, and
  1586.                      - the REUSE field of the deleted record is Y, and
  1587.                      - the new (replacement) user has the same first letter
  1588.                        of their last name as the deleted user.
  1589.  
  1590.     NEWUSER_LVL - this parm tells MAGNUM what security level to assign to a
  1591.                   new user. This can range from 0 to 9999.
  1592.  
  1593.     CONFIRM_NEWRESP - Optional. Supply Y (yes) or N (no). The default is N.
  1594.                       If you supply N (no), Magnum will not confirm new user
  1595.                       user logon responses with "Is this correct (Y/N) => "
  1596.                       prompts when new users respond to the prompts of
  1597.                       address, city, state,  zip, country, telephone
  1598.                       numbers, etc. Instead, the new user will have a chance
  1599.                       to update their responses at the end of all of the new
  1600.                       user logon questions. We recommend the default of N.
  1601.                       This keyword  exists only for compatibility with
  1602.                       previous Magnum versions which confirmed every
  1603.                       response. The confirmation of every response however,
  1604.                       is frustrating and extraneous.
  1605.  
  1606.     GET_PHONE - Y=ask new users for their telephone numbers. N=don't ask.
  1607.  
  1608.     GET_DOB - Y=ask new users for their date of birth. N=don't ask.
  1609.  
  1610.     GET_COMPUTER - Y=ask new users for the computer brand. N=don't ask.
  1611.  
  1612.     GET_QUESTION - Y=force new users to fill out the new user's
  1613.                      questionairre. N=no questionairre.
  1614.  
  1615.     GET_COMPANY  - Y=Prompt user for whether they have a company name and
  1616.                      collect the name of their company if they do.
  1617.                    N=Do not prompt for company and do not collect company
  1618.                      name information.
  1619.  
  1620.     GET_ADDRESS  - Y=Collect mailing address information from the user.
  1621.                    N=Do not collect mailing address information.
  1622.  
  1623.  
  1624.  
  1625.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1626.  
  1627.  
  1628.  
  1629.     Page  1-20                                MAGNUM BBS (r) system for OS/2
  1630.                                                           Configuring MAGNUM
  1631.  
  1632.  
  1633.     GET_DATEFMT  - Y=Ask new user for date preference (US or European).
  1634.                    N=Use System Date Format for new user (obtained from
  1635.                      the DATEFORMAT keyword described earlier). The user
  1636.                      can change this later on through the [E]nvironment
  1637.                      section of the main menu.
  1638.  
  1639.     GET_INTERESTS - Y=Ask new user for their areas of interest (for
  1640.                       cross-reference capability).
  1641.                     N=Do not ask new user for areas of interest. The user
  1642.                       can change this later on through the [E]nvironment
  1643.                       section of the main menu.
  1644.  
  1645.     MILC_CHAR - Optional. The parm you supply for this keyword will override
  1646.                 the default MILC command character of '@'. MILC is the
  1647.                 embedded command language Magnum uses in your display files.
  1648.                 These embedded commands begin with a special character known
  1649.                 as the MILC_CHAR.
  1650.                 NOTE: characters with decimal values of 0 to 32 (hex 0 to
  1651.                       hex 20) will not be accepted. Alphanumeric characters
  1652.                       (A-Z, a-z, 0-9) and punctuation characters will NOT be
  1653.                       accepted: !,.?"':;()
  1654.                 CAUTION: If using someone else's MILC command file (from
  1655.                          another BBS), chances are very high that they're
  1656.                          using the @ character; you must be sure to change
  1657.                          this to the MILC command character you define for
  1658.                          your system. If you'll be overriding the MILC
  1659.                          command character, use extreme caution in
  1660.                          selecting a new character! Avoid the use of
  1661.                          characters which may appear within a normal message
  1662.                          (ie: %$#*[]{}\/<>+-&). Try to pick a not-so-common
  1663.                          character such as the ~ or ^ character.
  1664.  
  1665.     MSGMILC_CHAR - Optional (default = ^).  The parm you supply for this
  1666.                    keyword will override the default MSGMILC command
  1667.                    character of '^'.  The character that denotes the start
  1668.                    of a MILC command within message text should be something
  1669.                    other than the '@' character because message text may
  1670.                    contain reference to an Internet E-mail address
  1671.                    such as someone@someplace.com (if @ were the MILC command
  1672.                    character, Magnum would attempt to process (or remove)
  1673.                    the @s of @someplace in this example).
  1674.  
  1675.     INTERNET_DOMAIN_NAME - Optional.  The parameter for this keyword is the
  1676.                            internet domain name of your system as its known
  1677.                            on the Internet. You need to arrange for a domain
  1678.                            name (UUCP DNS service) with your internet
  1679.                            provider in order to provide the parm to this
  1680.                            keyword.  The default parm is a null entry (no
  1681.                            domain name).
  1682.                            NOTE: Internet E-mail requires the optional
  1683.                                  MAGUUCP module.
  1684.  
  1685.     INTERNET_TIMEZONE - Optional.  The parameter to this keyword is the
  1686.  
  1687.  
  1688.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1689.  
  1690.  
  1691.  
  1692.     MAGNUM BBS (r) system for OS/2                                Page  1-21
  1693.     Configuring MAGNUM
  1694.  
  1695.  
  1696.                         [internet] time zone your system is located in. This
  1697.                         parameter is only necessary if you intend to use
  1698.                         Internet e-mail.  The parameter is the standard time
  1699.                         zone notations such as PST (Pacific Standard Time),
  1700.                         EDT (Eastern Daylight Time), GMT (Grenwich Mean
  1701.                         Time), etc.  The western-most portion of the U.S.
  1702.                         mainland (ie: California, Oregon, Washington) is on
  1703.                         PST or PDT depending on whether daylight savings
  1704.                         time is in effect.  The eastern-most portion of the
  1705.                         U.S. mainland (ie: New York, Massachusetts, Maine,
  1706.                         D.C., Florida, etc) is on EST or EDT depending on
  1707.                         whether daylight savings time is in effect.  There's
  1708.                         two other time zones between eastern and western
  1709.                         coasts such as Mountain time (MDT, MST), and Central
  1710.                         time (CDT, CST). There are other time zones
  1711.                         depending on where the BBS's physical location is
  1712.                         (ie: lattitude, longtitude).
  1713.                         NOTE: Internet E-mail requires the optional MAGUUCP
  1714.                               module.
  1715.  
  1716.     LOGIN_OVERRIDE - Optional.  If you supply a parameter to this keyword,
  1717.                      Magnum will override the built-in
  1718.                      "LOGIN: First Name or /id# => " prompt with the string
  1719.                      that you supply to this keyword.  Note that you have
  1720.                      43 characters maximum, if the maximum is exceeded, it
  1721.                      will be truncated to 43 characters without warning.
  1722.                      The MAKEMBBS.EXE program will automatically append
  1723.                      the " => " string to the end of your string, therefore
  1724.                      the " => " string is not included within the 43
  1725.                      characters that you are allowed.
  1726.  
  1727.     MORE_ADJUST - Optional. The "- More -" prompt appears after each
  1728.                   screenful of text if the user wishes it. A screenful of
  1729.                   text is defined by the user. For example, if the user
  1730.                   specifies 25 lines/screen, then Magnum will display 25
  1731.                   lines of text and the -More- prompt will appear on line
  1732.                   26 thus scrolling one line of previous text off of the
  1733.                   screen on a 25-line CRT. The value you supply here will
  1734.                   adjust for this. For example, if you supply -1, then the
  1735.                   user's lines/screen will effectively become (25-1) or 24.
  1736.                   This keyword is optional, and carries a default of 0 if
  1737.                   not specified. Recommended values are -3 to 2.
  1738.  
  1739.     DATEPROMPT_MIXED - Optional. Takes a parameter of Y or N. Supply Y to
  1740.                        have Magnum supply date prompts in mixed case (ie:
  1741.                        mM/dD/yyyy or dD.mM.yyyy), or N to supply date
  1742.                        prompts in uppercase (ie: MM/DD/YY or DD.MM.YYYY).
  1743.                        This keyword is optional, the default is N.
  1744.  
  1745.  
  1746.     SHOW_CALLERNUM - Optional. If you supply Y to this  keyword, Magnum will
  1747.                      function as usual. If you supply N to this keyword,
  1748.                      Magnum will suppress the "You are the nth caller on
  1749.  
  1750.  
  1751.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1752.  
  1753.  
  1754.  
  1755.     Page  1-22                                MAGNUM BBS (r) system for OS/2
  1756.                                                           Configuring MAGNUM
  1757.  
  1758.  
  1759.                      node x" message when someone logs on.
  1760.  
  1761.     SHOW_DLS - If you supply Y to this keyword, Magnum will function as
  1762.                usual. If you supply N to this keyword, Magnum will suppress
  1763.                the information on the number of Downloads on each file
  1764.                during any file listings.
  1765.  
  1766.     REMOTE_MAIL - Optional. If you don't plan on using remote mail, you
  1767.                   should either supply N to this keyword, or leave the
  1768.                   keyword out alltogether (default is N). This field
  1769.                   applies only to NEW (first time) users. This is where NEW
  1770.                   users get their RMAIL field in their record from (see the
  1771.                   RMAIL field in the chapter on MBBSEXEC); in other words,
  1772.                   if you want new users to be able to use the remote mail
  1773.                   facilities immediately, supply Y to this keyword.
  1774.                   NOTE: Existing users on the system will be unaffected by
  1775.                   this field. Write a .MEX file for bulk update of existing
  1776.                   users (see MBBSEXEC).
  1777.  
  1778.     MENU_CLS - This keyword accepts a parm of Y (for YES), or N (for NO).
  1779.                The default parm is N (no).  If Y, then Magnum will issue a
  1780.                clear screen command prior to displaying a menu.
  1781.  
  1782.     FREENODES - This keyword will normally have a blank parameter.  However,
  1783.                 you may supply the list of nodes which will disallow a call
  1784.                 on the current node if any of the nodes in the list are
  1785.                 free (available) for calls (ie: no one online on any of the
  1786.                 nodes in the node list).  Node numbers are to be separated
  1787.                 by commas.  Maximum of 60 characters.  Node numbers can be
  1788.                 in any order, and may contain any valid node numbers.  Note
  1789.                 that a node in the list is considered 'available' if it is
  1790.                 active and waiting for calls.  The node is considered
  1791.                 unavailable if someone is online or if the node is
  1792.                 inactive.   Example:   FREENODES: 1,2
  1793.  
  1794.     LOGON_VERIFY - The parm can be either Y (yes) or N (no).  The default
  1795.                    is Y.  If N, the system will go directly to the password
  1796.                    prompt after entering a name or user id; no confirmation
  1797.                    as to the person's identity will be prompted for.
  1798.  
  1799.     DUPLICATE_LOGONS - Prior to version 8.xx, Magnum has always allowed
  1800.                        duplicate logons (ie: the same user can be logged on
  1801.                        to more than one node at the same time).  This is now
  1802.                        a configurable parameter.  Valid parms are Y (allow)
  1803.                        or N (disallow).  The default is N (disallow).
  1804.  
  1805.     POLL_LOOP_WAIT - Version 7.00c of Magnum had a hard-coded poll-loop
  1806.                      delay of 30 miliseconds which answered the modem line
  1807.                      fast, started sessions fast, and recognized and reset
  1808.                      terminated sessions fast.  Version 8.xx changed this
  1809.                      hard-coding to 60 miliseconds which is a little slower
  1810.                      but uses less cpu time.  This keyword allows you to set
  1811.                      your own value.  The default is 60 miliseconds, and the
  1812.  
  1813.  
  1814.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1815.  
  1816.  
  1817.  
  1818.     MAGNUM BBS (r) system for OS/2                                Page  1-23
  1819.     Configuring MAGNUM
  1820.  
  1821.  
  1822.                      acceptable range is 0 to 1000.  Now that this is a
  1823.                      configurable parameter, you can fine-tune your system
  1824.                      to your liking.
  1825.                  --> NOTE: This keyword/parm is ignored for all STARTUP.n
  1826.                            files except for the STARTUP.n file for your
  1827.                            CONSOLE NODE!
  1828.  
  1829.     OUTSIDE_MAIL_ID - The ID number of the account for "outside mail".  This
  1830.                       is the account ID where any incoming 'outside mail'
  1831.                       goes to when a particular ID is not specified.
  1832.                       Example:  OUTSIDE_MAIL_ID: /500
  1833.                       NOTE: The above ID is used for example purposes only!
  1834.                             You should supply /0 (feature disabled) if
  1835.                             you're installing Magnum for the first time.
  1836.  
  1837.     ALLOW_OUTSIDE_MAIL - The "new user default" as to whether to allow
  1838.                          read/write access to/from the OUTSIDE_MAIL_ID
  1839.                          account.  If N, read/write access to/from mail
  1840.                          accounts other than U or M is denied.  The default
  1841.                          is N.
  1842.  
  1843.     SHOW_EXTDESC - New User default for whether to show extended (long) file
  1844.                    descriptions during file listings.  The parameter can be
  1845.                    Y (for YES) or N (for NO).  If this keyword/parameter is
  1846.                    omitted from the STARTUP.n file(s), the default is N.
  1847.                    Note that users can choose to turn this on or off for
  1848.                    themselves via the [E]nvironment option of the main menu
  1849.                    (if allowed).
  1850.  
  1851.     ALLOW_HANDLES - Default for whether handles (alias names) can be used.
  1852.                     If Y, then a new user (one who's logging on for the
  1853.                     first time) will be prompted as to whether they wish to
  1854.                     use a handle (AFTER they've entered their normal name).
  1855.                     If this keyword/parameter is omitted from the STARTUP.n
  1856.                     file(s), the default is N.
  1857.  
  1858.     FILEGROUP  - Optional.  Default FileGroup (0-255) for new user.  Leave
  1859.                  out or set to 0 if not using the Extended FileBase Module.
  1860.  
  1861.     MSGGROUP   - Optional.  Default MsgGroup(0-255) for new user.  Leave out
  1862.                  or set to 0 if not using the Extended MsgBase Module.
  1863.  
  1864.     NOTE:  The FILEGROUP keyword should only be used by those sysops with
  1865.            the optional Extended FileBase Module.  The MSGGROUP keyword
  1866.            should only be used by those sysops with the optional Extended
  1867.            MsgBase  Module.  Even with these modules, the use of these
  1868.            keywords are optional, and if not supplied, will default to 0
  1869.            (no FileGroup and/or no MsgGroup).  The use of FileGroups and
  1870.            MsgGroups will significantly speed up the following functions
  1871.            (requires Extended MsgBase and/or Extended FileBase):
  1872.            MSGMENU_BASE, MSGMENU_BASEUP, MSGMENU_BASEDN, FILEMENU_BASE,
  1873.            FILEMENU_BASEUP, FILEMENU_BASEDN.  These keywords are defined
  1874.            later in this chapter.
  1875.  
  1876.  
  1877.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1878.  
  1879.  
  1880.  
  1881.     Page  1-24                                MAGNUM BBS (r) system for OS/2
  1882.                                                           Configuring MAGNUM
  1883.  
  1884.  
  1885.  
  1886.     NEWUSER_TIME - new user's daily time limit (in minutes)
  1887.  
  1888.     LINES_SCREEN - new user's default for number of lines per screen
  1889.  
  1890.     LOWEST_BAUD - lowest baud rate allowed
  1891.  
  1892.     FILE_U_AREAS - file upload areas assigned to new user (use letters A-Z)
  1893.     FILE_D_AREAS - file download areas assigned to new user (letters A-Z)
  1894.     FILE_L_AREAS - file list areas assigned to new user (use letters A-Z)
  1895.  
  1896.     MSG_R_AREAS - message read areas assigned to new user (use letters A-Z)
  1897.     MSG_W_AREAS - message write areas assigned to new user (use letters A-Z)
  1898.     MSG_L_AREAS - message list areas assigned to new user (user letters A-Z)
  1899.  
  1900.     MILC_CMDS - Default MILC commands in which a user is allowed to imbed in
  1901.                 messages s/he enters.  (Formerly DISP_CMDS prior to v8.xx).
  1902.  
  1903.     RJE_AREA - area of file section designated for RJE results (ie: for use
  1904.                with the [F]ile menu's [M]ake command and for placement of
  1905.                resultant files from running RJE jobs).
  1906.  
  1907.     COMMENT_AREA - area of message section for "comments to/from sysop"
  1908.     STARTUP_TYPE - Session Startup (F=Fullscreen, W=Windowed) for this node
  1909.     FILEDES_AREA - area of message section for extended file descriptions
  1910.     PRIVMSG_AREA - area of message section for private system messages
  1911.                    (messages generated by Magnum to a user).
  1912.  
  1913.     PRIVATE_MSGS - Y=private messages are allowed, N=private messages NOT
  1914.                    allowed.
  1915.                    NOTE: Comment to Sysop from main menu is *always* a
  1916.                          private msg regardless of this setting.
  1917.  
  1918.     VERIFY_PHONE - Range is 0 to 255. If 0, phone number is not verified. If
  1919.                    non-zero, the system will ask the user for phone number
  1920.                    verification after every Xth call. (ie: if X is 5, the
  1921.                    system will verify phone numbers for every 5th call the
  1922.                    user makes to the system). This is an additional security
  1923.                    check.
  1924.                    NOTE: If the GET_PHONE parameter is N, then the
  1925.                          VERIFY_PHONE parameter MUST be set to 0.
  1926.  
  1927.     VERIFY_DOB - Similar to VERIFY_PHONE except it verifies date of birth
  1928.                  after every Xth call the remote user makes. If 0, no
  1929.                  verification is asked for. NOTE: If the GET_DOB parameter
  1930.                  is N, then the VERIFY_DOB parameter MUST be set to 0.
  1931.  
  1932.     DEL_MSGS - Y=user is allowed to delete messages, N=user cannot delete
  1933.                messages.
  1934.                NOTE: Y only allows user to delete messages addressed to/from
  1935.                      his/her own user id.
  1936.  
  1937.     LOG_MSGS - Y=report each message read to the activity log - this can
  1938.  
  1939.  
  1940.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  1941.  
  1942.  
  1943.  
  1944.     MAGNUM BBS (r) system for OS/2                                Page  1-25
  1945.     Configuring MAGNUM
  1946.  
  1947.  
  1948.                  make your activity logs very large very fast - especially
  1949.                  with a large message base.
  1950.                N=do NOT record each message read to activity log
  1951.                  (preferred).
  1952.  
  1953.     LOG_TIME - Y=prefix the time (hh:mm:ss) to each entry made in the
  1954.                  activity logs in addition to start time of user session.
  1955.                N=do not prefix time to entries made in activity logs (start
  1956.                  time of each user session is automatically entered in
  1957.                  activity logs).
  1958.  
  1959.     SYSOP_LVL - the security level assigned to the Sysop. can range from 1
  1960.                 to 9999. This should be the highest security level of all of
  1961.                 the users of the board. In our case, we're using a level of
  1962.                 1000.
  1963.  
  1964.     SYSOP_MAIL_LVL - Security Level needed to read private sysop mail. This
  1965.                      would be for assistant sysops who you might want to be
  1966.                      able to read private mail addressed to "sysop", but
  1967.                      without necessarily having any other sysop priveleges.
  1968.                      Level 900 is what we're using.
  1969.  
  1970.     DISPLAY_PW_FILES - Y=password protected files show up in the file
  1971.                          listings.
  1972.                        N=password protected files do NOT show up in file
  1973.                          listings.
  1974.  
  1975.     UPLOAD_COMP - range is from 0 to 255. If X is 0, no upload compensation
  1976.                   is granted, otherwise, upload compensation is X times the
  1977.                   number of minutes spent uploading a file. For example, if
  1978.                   X is 3, then if a user spends 5 minutes uploading a file,
  1979.                   then 5 times 3 = 15. Therefore, the user would receive 15
  1980.                   minutes of upload credit in the form of 15 minutes of
  1981.                   additional time left on the system.
  1982.  
  1983.     MSG_COMP - similar to UPLOAD_COMP, X can range from 0 to 255. X is in
  1984.                units of seconds per word. In other words, if X were 3 and
  1985.                the user entered a 100-word message, then 100 times 3 = 300.
  1986.                Therefore, the user would receive message compensation of 300
  1987.                seconds (5 minutes). Actual compensation is rounded to the
  1988.                nearest minute. 1 minute and 30 seconds rounds to 2 minutes,
  1989.                whereas 1 minute and 29 seconds rounds to 1 minute. We have
  1990.                our system set to 1.
  1991.  
  1992.     UL_DL_RATIO - a ratio counter for number of files downloaded. If X is
  1993.                   set to 10, then for every 10 files a user downloads, the
  1994.                   system expects 1 file in return. The system will not allow
  1995.                   further downloads until the ratio is met. If X is set to
  1996.                   0, no ratio is required - the user can download to their
  1997.                   heart's content.
  1998.  
  1999.     DL_BYTES - maximum bytes a user can download per day (see TIME_UNIT).
  2000.     DL_FILES - maximum files a user can download per day (see TIME_UNIT).
  2001.  
  2002.  
  2003.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2004.  
  2005.  
  2006.  
  2007.     Page  1-26                                MAGNUM BBS (r) system for OS/2
  2008.                                                           Configuring MAGNUM
  2009.  
  2010.  
  2011.  
  2012.     MAX_TIME_CALL - maximum time limit for any caller (in minutes). This
  2013.                     field specifies how long any individual call can last
  2014.                     regardless of security level or time allowed for the
  2015.                     period. For example, if X is 60, then no caller will be
  2016.                     allowed to exceed 60 minutes for any given call even
  2017.                     though they might be allowed more than 60 minutes per
  2018.                     day. The caller must either log off at the end of 60
  2019.                     minutes or be forced off by the system. The caller can
  2020.                     call right back and be allowed another 60 minutes. This
  2021.                     is to ensure that no caller ties up the system without
  2022.                     giving someone else a chance.
  2023.  
  2024.     DAILY_TIME - new user daily time limit (in minutes).
  2025.  
  2026.     TIME_UNIT - Can be one of D (daily), W (weekly), M (monthly) or Y
  2027.                 (yearly). If D, everything is as expected. If W, all
  2028.                 parameters are internally multiplied by 7. If M, all
  2029.                 parameters are internally multiplied by the number of days
  2030.                 in the current month. If Y, all parameters are internally
  2031.                 multiplied by the number of days in the current year (365 or
  2032.                 366). Taking a weekly (W) user as an example, a newuser
  2033.                 default of 30 minutes per day would translate to 210 minutes
  2034.                 per week (30 times 7). The user could use all of this time
  2035.                 up in one day and not be allowed back on the system until
  2036.                 next week. The number of daily downloads allowed, etc are
  2037.                 all multiplied by 7. Although the period types of D, M, and
  2038.                 Y have straightforward boundaries, W boundaries differ - for
  2039.                 example, in 1989, January 1st fell on a Sunday, therefore,
  2040.                 all W (weekly) boundaries will fall on a sunday for the
  2041.                 remainder of 1989. For any given year, the boundary day
  2042.                 which determines the change of week is the day that January
  2043.                 1st was for that year. This TIME_UNIT field is often
  2044.                 referred to in the documentation as "period" or "period
  2045.                 type".
  2046.  
  2047.     PRORATE - This parameter can be Y or N (yes or no). If Y, proration of
  2048.               any period type (TIME_UNIT) other than D (daily) will take
  2049.               place. This is best explained via example. If a user's period
  2050.               type is M (monthly), and the current month is June (30 days),
  2051.               then the user should have 30 times the daily parameters
  2052.               allocated. However, if PRORATE=Y, then if the user first calls
  2053.               the BBS on June 20, then MAGNUM will prorate the time left for
  2054.               actual days left in the month. In other words, June 20th means
  2055.               that only 10 days are left of the month, therefore, the user
  2056.               will only receive 10 times the daily allocation instead of the
  2057.               full 30. This proration will take place every logon. This may
  2058.               help lighten the extra load at the end of a period (week,
  2059.               month, year) when users scurry to get their time's worth in
  2060.               the last possible chance before a new period begins.
  2061.  
  2062.     PRINTER - A log is automatically kept by MAGNUM under the filename of
  2063.               ACTIVITY.X where X is the node number. This report can be
  2064.  
  2065.  
  2066.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2067.  
  2068.  
  2069.  
  2070.     MAGNUM BBS (r) system for OS/2                                Page  1-27
  2071.     Configuring MAGNUM
  2072.  
  2073.  
  2074.               routed to a printer or other device (or other file but that
  2075.               would duplicate the ACTIVITY.X file). If you are running more
  2076.               than one node, do NOT choose PRN as the device for each node
  2077.               unless you are using the print spooler. Supply "nul" (without
  2078.               the quotes) if you don't want anything printed (ie: if the
  2079.               ACTIVITY.X report is good enough for you).
  2080.  
  2081.     SUB_FILEDEL - This parameter can be Y or N (yes or no). If Y, Magnum
  2082.                   will subtract 1 upload credit each time a user deletes a
  2083.                   file they uploaded to the system. If N, Magnum will NOT
  2084.                   subtract any upload credits from the user's upload
  2085.                   counter.
  2086.  
  2087.     FREE_DL_AREAS - This parameter specifies file areas that a user can
  2088.                     download from without affecting their upload/download
  2089.                     ratio counter. If you're using an upload/download ratio
  2090.                     (ie: wanting 1 upload for every X files downloaded), you
  2091.                     can define which areas files can be designated as "free"
  2092.                     downloads. For example, if your company runs a support
  2093.                     BBS with updates of your software available for
  2094.                     download (regardless of how many downloads the user
  2095.                     performed to date), you would designate those area(s)
  2096.                     here. If you specify "ACH" (without the quotes), then
  2097.                     all files downloaded from file areas A, C and H will
  2098.                     be considered "free". (Free, in the sense that the
  2099.                     user's upload/download counter is not incremented).
  2100.  
  2101.     BLOCK_WRITES - This parameter can be Y or N (yes or no). If Y, Magnum
  2102.                    will send text to the comport in blocks (rather than
  2103.                    single bytes at a time) whenever possible. This will
  2104.                    improve the performance and efficiency of Magnum. On
  2105.                    the down side, "remote snoop" (where you can call your
  2106.                    BBS remotely and snoop on any node currently online
  2107.                    with a caller) may result in lost characters on your
  2108.                    remote "snoop" screen.
  2109.  
  2110.     NEW_MAIL - This parameter fan be one of three: "A" (without quotes) will
  2111.                ASK the user (at each logon) if they wish for Magnum to scan
  2112.                the message base for any "unread mail". "F" (without quotes)
  2113.                will FORCE a mail check (no prompts, just the mail check).
  2114.                "B" (without quotes) will bypass any mail checking or mail
  2115.                checking prompts.
  2116.  
  2117.     VERIFY_GOODBYE - This parameter can be Y or N (yes or no). If Y, the
  2118.                      system will ask the remote user if they're sure they
  2119.                      wish to log off (if the user is sure, they'll be
  2120.                      prompted as to whether they wish to leave a comment to
  2121.                      the sysop prior to disconnecting).
  2122.                      If N, the system will not ask the user if they're sure
  2123.                      about disconnecting, and will not prompt for a logoff
  2124.                      comment, it will just log the user off (the ending
  2125.                      quote will still be sent if the quote file is present,
  2126.                      and the GOODBYE.BBS file will also be sent if present).
  2127.  
  2128.  
  2129.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2130.  
  2131.  
  2132.  
  2133.     Page  1-28                                MAGNUM BBS (r) system for OS/2
  2134.                                                           Configuring MAGNUM
  2135.  
  2136.  
  2137.  
  2138.     BADCMDMSG - Y=Issue Message for unauthorized menu commands, N=don't
  2139.  
  2140.     NOANSI - Y=Deactive ANSI color, N=ANSI color ok
  2141.                If NOANSI is set to Y, color escape sequences are not sent by
  2142.                Magnum regardless of the user's color settings. The user will
  2143.                be unable to change their color settings from the
  2144.                [E]nvironment option. The new ANSI message editor will still
  2145.                function by using all ANSI escape sequences except color.
  2146.  
  2147.     NOXFRTIME - Y=Timer inactive for file xfers, N=Normal BBS xfr operation
  2148.                   If NOXFRTIME is set to Y, the timer is disabled
  2149.                   during file transfers. For example, if a user has
  2150.                   a 30-minute time limit per day, the timer will stop
  2151.                   during file transfer, enabling the user to download
  2152.                   for hours on end. After transfer(s) are completed,
  2153.                   the timer starts again from where it left off before
  2154.                   the transfer. This situation is ideal for those
  2155.                   companies who provide updates/fixes to their software
  2156.                   via Magnum and, since each download saves the company
  2157.                   a few dollars in labeling, packaging, shipping, etc,
  2158.                   enabling this option ensures that every caller will
  2159.                   be able to download any/every file they need with
  2160.                   a single call.
  2161.                   NOTE: If you supply Y to the NOXFRTIME keyword, not
  2162.                   only is the timer disabled, but the following checks
  2163.                   are also deactivated:
  2164.                              - UL/DL ratio
  2165.                              - Maximum K-bytes downloaded per period
  2166.                              - Maximum Files downloaded per period
  2167.                              - Time remaining for the period
  2168.  
  2169.     MAINMENU_HDR - Optional. Overrides the header (title) the user sees upon
  2170.                    entry into the main menu. The default main menu header is
  2171.                    "Magnum OS/2 BBS - Main Menu". If this keyword is
  2172.                    supplied, it will override the main menu header with what
  2173.                    you supply here. Example:
  2174.                        MAINMENU_HDR: ABC Corp - Main Menu
  2175.                    You may specify up to 60 characters.
  2176.  
  2177.     FILEMENU_HDR - Optional. Similar to MAINMENU_HDR but for file menu.
  2178.  
  2179.     MSGMENU_HDR - Optional. Similar to MAINMENU_HDR but for message menu.
  2180.  
  2181.     RJEMENU_HDR - Optional. Similar to MAINMENU_HDR but for RJE menu.
  2182.  
  2183.     SYSMENU_HDR - Optional. Similar to MAINMENU_HDR but for Sysop menu.
  2184.  
  2185.     CPUTYPE_OVERRIDE - Optional. If you specified Y to the GET_COMPUTER
  2186.                        keyword described earlier, Magnum will prompt the
  2187.                        user as to what brand of computer their using.
  2188.                        This keyword can override that prompt with your own.
  2189.                        For example, to find out what modem brand the user
  2190.  
  2191.  
  2192.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2193.  
  2194.  
  2195.  
  2196.     MAGNUM BBS (r) system for OS/2                                Page  1-29
  2197.     Configuring MAGNUM
  2198.  
  2199.  
  2200.                        is using:
  2201.                          CPUTYPE_OVERRIDE: What modem brand are you using
  2202.                        You can supply up to 40 characters. Magnum will
  2203.                        automatically append " => " (without quotes) when
  2204.                        displayed to your users. The user can respond with
  2205.                        up to 20 characters.
  2206.  
  2207.     The remainder of the configuration text file (STARTUP.x) allows you to
  2208.     define how you want menus to look. These are the internal menus which
  2209.     are dynamically built by MAGNUM. You'll see later how to create your own
  2210.     menu file, but internally, MAGNUM needs to know what security level
  2211.     gets to  do what  function, and  what letter  you wish  to assign to the
  2212.     functions, and what descriptions you want for the functions.
  2213.  
  2214.     Menu definitions are as follows:
  2215.  
  2216.        KEYWORD:  C,L,S
  2217.  
  2218.     where KEYWORD tells MAGNUM which function you are referring to, C  tells
  2219.     magnum  what  letter  of  the  alphabet  you  wish  to  use to call that
  2220.     function, L  tells MAGNUM  the minimum  security Level  needed to access
  2221.     that function, and  S is a  string up to  40 characters in  length which
  2222.     gives a descriptive text of the function.  See the sample STARTUP.X file
  2223.     for how we do it.  For example, the "[Y]ell for Sysop" might better suit
  2224.     your taste as:
  2225.  
  2226.           MAINMENU_PAGESYS: P,5,[P]age the Sysop
  2227.  
  2228.     The  above  statement  tells  MAGNUM  that  P  would  call  the function
  2229.     MAINMENU_PAGESYS  if  the  user  has  a  security level of 5 or greater.
  2230.     MAGNUM would show that part of the menu as:
  2231.  
  2232.             [P]age the Sysop
  2233.  
  2234.     However, if the user's security level is less than 5, then that part  of
  2235.     the menu would not appear.  In other words, only level 5 and above would
  2236.     see  that  menu  selection.    MAGNUM  dynamically  builds  these  menus
  2237.     according to  the user's  security level.   Be  careful not to duplicate
  2238.     call letters  within a  menu.   In other  words, it's  ok to have a call
  2239.     letter of P appear  in the main menu,  the file menu, the  message menu,
  2240.     etc - but P  can only appear once  within any individual menu  (ie:  You
  2241.     cannot have P for "[P]age Sysop" and for "[P]arms" in the same menu).
  2242.  
  2243.     The Descriptive text for commands (up to 40 characters) is completely up
  2244.     to the sysop configuring the system. the brackets surrounding the  first
  2245.     letter of the  description has no  bearing whatsoever -  it merely helps
  2246.     the user to know what command  is what.  "[M]essage Section" could  just
  2247.     as easily  be "M  - Messages"  or "M  = MAIL"  or "EMAIL ...........M" -
  2248.     whatever your preference.   Be warned  that MAGNUM generates  a 2-column
  2249.     menu display such that  column one is from  phsyical columns 1 thru  40,
  2250.     while column two is from physical  columns 41 thru 80.  Although  MAGNUM
  2251.     accepts descriptive  text of  up to  40 characters,  you should maximize
  2252.     your text to  39 characters or  less otherwise this  is what can  happen
  2253.  
  2254.  
  2255.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2256.  
  2257.  
  2258.  
  2259.     Page  1-30                                MAGNUM BBS (r) system for OS/2
  2260.                                                           Configuring MAGNUM
  2261.  
  2262.  
  2263.     with text using  all 40 characters:   If in  the first column,  the last
  2264.     character (column 40) will appear immediately before the first character
  2265.     of the  second column  (column 41);  Likewise, if  the second column (41
  2266.     thru 80) uses all  40 characters, then when  the character on column  80
  2267.     displays,  certain  displays  will  cause  an automatic CR/LF, leaving a
  2268.     blank line between this menu choice and the next one.
  2269.  
  2270.     Before getting into the actual menu configuration keywords, let's first
  2271.     explain two optional keywords:
  2272.  
  2273.     MENU_HILITE: - Allows you to specify a character and color which tells
  2274.                    Magnum to change the color of the character immediately
  2275.                    following it.  Example:
  2276.  
  2277.                              MENU_HILITE: ~12
  2278.  
  2279.                    This tells Magnum that the ~ character means to change
  2280.                    the very next character to color 12 (see the MILC @A
  2281.                    command for color number meanings).  With this method,
  2282.                    your menu choice definitions in your STARTUP.x file(s)
  2283.                    can look like:
  2284.  
  2285.                             MAINMENU_MSG: M,5,[~M]essage Section
  2286.  
  2287.                    which tells Magnum that the character M is to be changed
  2288.                    to color 12 (bright red).
  2289.                    If the online user does not have their color settings
  2290.                    on, the ~ character (or whatever character you specified
  2291.                    in the MENU_HILITE parm) will simply be stripped, and no
  2292.                    color change will happen.  Note that this character will
  2293.                    also be stripped for color users.
  2294.                    NOTE: *** Do NOT use the [ character as the parm for the
  2295.                              MENU_HILITE keyword!!
  2296.  
  2297.     MENU_COLOR: -  Allows you to override the default color of 2 (green) in
  2298.                    which dynamic menus are built.  For example, to present
  2299.                    your menus in brown:
  2300.  
  2301.                              MENU_COLOR: 6
  2302.  
  2303.     QWK_BBSID - Optional.  The Parameter for this keyword is 1 to 8
  2304.                 characters for QWK mail.  If not supplied, Magnum will use
  2305.                 the last 8 characters of your serial# for the BBS ID.  You
  2306.                 can override this by providing your own 1 to 8 character BBS
  2307.                 ID.  Examples:  QWK_BBSID: GILMORE
  2308.                            or:  QWK_BBSID: MAGNUM
  2309.                 If you do not provide this keyword (and your parm), Magnum
  2310.                 will use the last 8 digits of your serial# instead.
  2311.  
  2312.     NOTE: External Menus ALWAYS override the dynamic menus!!
  2313.  
  2314.     There are  5 menu  sections -  each with  their own  unique keywords  as
  2315.     follows:
  2316.  
  2317.  
  2318.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2319.  
  2320.  
  2321.  
  2322.     MAGNUM BBS (r) system for OS/2                                Page  1-31
  2323.     Configuring MAGNUM
  2324.  
  2325.  
  2326.  
  2327.     --- MAIN MENU DEFINITIONS ---
  2328.  
  2329.     MAINMENU_MSG:       takes user from main menu to the message menu
  2330.     MAINMENU_FILE:      takes user from main menu to the files menu
  2331.     MAINMENU_RJE:       takes user from main menu to the RJE menu
  2332.     MAINMENU_BULLETIN:  takes user from main menu to the main bulletin file
  2333.     MAINMENU_QUESTION:  takes user from main menu to the main question file
  2334.     MAINMENU_COMMENT:   allows user to enter a private comment to sysop
  2335.     MAINMENU_PAGESYS:   system pages the sysop
  2336.     MAINMENU_WHO:       shows who's on the other nodes
  2337.     MAINMENU_CHAT:      enters group chat mode
  2338.     MAINMENU_INITIAL:   shows initial welcome screen(s) again (HELLO?.BBS)
  2339.     MAINMENU_USERS:     takes user to the "search user database" area
  2340.     MAINMENU_PARMS:     allows user to change parameters in their profile
  2341.     MAINMENU_STATS:     shows system statistics
  2342.     MAINMENU_CHILD:     takes user to the main "child" file (door menu)
  2343.     MAINMENU_NEWS:      takes user to the main "news" file
  2344.     MAINMENU_GOODBYE:   logs user off and disconnects
  2345.     MAINMENU_EXPERT:    toggles expert mode on/off
  2346.     MAINMENU_HELP:      displays help file for main menu
  2347.     MAINMENU_SYSOP:     takes user into the sysop menu section
  2348.     MAINMENU_OPT1:      displays file MAINOPT1.BBS from DISPLAY DIRectory
  2349.     MAINMENU_OPT2:      displays file MAINOPT2.BBS from DISPALY DIRectory
  2350.  
  2351.     Be careful in setting up the security levels - if the security level for
  2352.     MAINMENU_GOODBYE is higher than the lowest person's security level, then
  2353.     the user  with the  lower security  level will  not be  able to log off!
  2354.     S/he will  have to  break the  connection at  their end!   Likewise,  if
  2355.     MAINMENU_HELP is too high, users with  lower levels will not be able  to
  2356.     get help!  Also, make sure that the MAINMENU_SYSOP level only allows YOU
  2357.     (or someone you trust) to access the Sysop menu, otherwise someone could
  2358.     cause a lot of damage to your system!
  2359.  
  2360.     --- Message Menu Definitions ---
  2361.  
  2362.     MSGMENU_QUIT:       Allows user to quit msg section. return to main menu
  2363.     MSGMENU_UPDT:       Allows user to change message area(s)
  2364.     MSGMENU_READ:       Allows user to enter the "read messages" submenu
  2365.     MSGMENU_SCAN:       Allows user to scan messages
  2366.     MSGMENU_ENTER:      Allows user to enter a message
  2367.     MSGMENU_KILL:       Allows user to kill (delete) a message addressed to
  2368.                         or from their own ID.
  2369.     MSGMENU_SRCH:       Allows user to perform a text search.
  2370.     MSGMENU_CHECK:      Allows user to check for their own personal mail.
  2371.     MSGMENU_GOODBYE:    Logs user off and disconnects.
  2372.     MSGMENU_HELP:       Displays the help file for the message section.
  2373.     MSGMENU_OPT1:       Displays file MSGOPT1.BBS from DISPLAY DIRecory.
  2374.     MSGMENU_OPT2:       Displays file MSGOPT2.BBS from DISPLAY DIRectory.
  2375.     MSGMENU_BASE:       Change Msg Base. Requires 'Extended MsgBase module'.
  2376.     MSGMENU_BASEUP:     Moves to next MsgBase (requires extnd MsgBase)
  2377.     MSGMENU_BASEDN:     Moves to preceding MsgBase (requires extnd MsgBase)
  2378.  
  2379.  
  2380.  
  2381.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2382.  
  2383.  
  2384.  
  2385.     Page  1-32                                MAGNUM BBS (r) system for OS/2
  2386.                                                           Configuring MAGNUM
  2387.  
  2388.  
  2389.     NOTE: If you're not using (or don't have) the optional extended MsgBase
  2390.           module, then the security levels of MSGMENU_BASE, MSGMENU_BASEUP
  2391.           and MSGMENU_BASEDN should be set to a level higher than that of
  2392.           the Sysop so that these menu choices will not appear online.
  2393.  
  2394.     --- File Menu Definitions ---
  2395.  
  2396.     FILEMENU_QUIT:      Allows user to quit file section. Returns to main
  2397.                         menu.
  2398.     FILEMENU_INFO:      Displays detailed info on a file, including extended
  2399.                         description if it exists.
  2400.     FILEMENU_LIST:      Lists available files by section(s).
  2401.     FILEMENU_DL:        Allows user to perform download(s).
  2402.     FILEMENU_UL:        Allows user to perform an upload.
  2403.     FILEMENU_NEW:       Allows user to perform a new files search by section
  2404.                         and date
  2405.     FILEMENU_SRCH:      Allows user to search file names and the brief
  2406.                         description for a string of text. Can filter by
  2407.                         date too.
  2408.     FILEMENU_STATS:     Displays user's statistics for the period and in ttl
  2409.     FILEMENU_GOODBYE:   Logs user off and disconnects.
  2410.     FILEMENU_HELP:      Displays help file for the files section.
  2411.     FILENENU_EXT:       Externally accesses ARC or ZIP file for list/view/dl
  2412.     FILEMENU_READ:      Allows user to read any ASCII text file.
  2413.     FILEMENU_CHANGE:    Allows user to change any file s/he uploaded.
  2414.     FILEMENU_MAKELIST:  Allows user to make an ARC'd or ZIP'd file listing
  2415.                         of available files by sections desired and dates.
  2416.     FILEMENU_OPT1:      Displays file FILEOPT1.BBS from DISPLAY DIRectory.
  2417.     FILEMENU_OPT2:      Displays file FILEOPT2.BBS from DISPLAY DIRectory.
  2418.     FILEMENU_BASE:      Change FileBase. Requires 'Extended FileBase' module
  2419.     FILEMENU_UTILS:     Utilities. Lets users Mark files, unmark, view, etc.
  2420.     FILEMENU_BASEUP:    Moves to next FileBase (requires extnd FileBase)
  2421.     FILEMENU_BASEDN:    Moves to preceding FileBase (requires extd FileBase)
  2422.  
  2423.     NOTE: If you're not using (or don't have) the optional extended FileBase
  2424.           module, then the security levels of FILEMENU_BASE, FILEMENU_BASEUP
  2425.           and FILEMENU_BASEDN should be set to a level higher than that of
  2426.           the Sysop so that these menu choices will not appear online.
  2427.  
  2428.     --- RJE Menu Definition ---
  2429.  
  2430.     RJEMENU_QUIT:       Quits RJE section and returns to main menu
  2431.     RJEMENU_STATUS:     For checking the status of any RJE jobs user started
  2432.     RJEMENU_LIST:       List/Execute RJE menu (an external file you create)
  2433.     RJEMENU_DELETE:     Kill an RJE job user started
  2434.     RJEMENU_FILES:      Lists completed files (created by RJE job) ready
  2435.                         for download
  2436.     RJEMENU_SYSOP:      For Sysop use only
  2437.     RJEMENU_HELP:       Displays help file for RJE section
  2438.     RJEMENU_GOODBYE:    Logs user off and disconnects
  2439.     RJEMENU_OPT1:       Displays file RJEOPT1.BBS from DISPLAY DIRectory.
  2440.     RJEMENU_OPT2:       Displays file RJEOPT2.BBS from DISPLAY DIRectory.
  2441.  
  2442.  
  2443.  
  2444.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2445.  
  2446.  
  2447.  
  2448.     MAGNUM BBS (r) system for OS/2                                Page  1-33
  2449.     Configuring MAGNUM
  2450.  
  2451.  
  2452.     --- SYSOP Menu Definition ---
  2453.  
  2454.     SYSMENU_QUIT:       Quits Sysop section - returns to main menu
  2455.     SYSMENU_CMD:        Calls the OS/2 Command Interpreter (CMD.EXE)
  2456.     SYSMENU_PRINT:      Prints the user database (to a file or device)
  2457.     SYSMENU_MSG:        Msg Database Area  -maintenance/adjustments of msgs
  2458.     SYSMENU_USER:       User Database Area -maintenance/adjustments of users
  2459.     SYSMENU_FILE:       File Database Area -maintenance/adjustments of files
  2460.     SYSMENU_ACTIVITY:   For listing activity logs (listed backwards) or to
  2461.                         remotely snoop on another session.
  2462.     SYSMENU_REMOTE:     For remotely accessing the Sysop console.
  2463.     SYSMENU_STATS:      Shows the status of the databases (user, msg, file,
  2464.                         rje), and performs physical deletions of deleted or
  2465.                         expired files and messages. Allows packing of
  2466.                         message or file databases.
  2467.     SYSMENU_HELP:       Displays the help file for the sysop section
  2468.     SYSMENU_GOODBYE:    Logs user off and disconnects
  2469.     SYSMENU_OPT1:       Displays file SYSOPT1.BBS from DISPLAY DIRectory.
  2470.     SYSMENU_OPT2:       Displays file SYSOPT2.BBS from DISPLAY DIRectory.
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2508.  
  2509.  
  2510.  
  2511.     Page  1-34                                MAGNUM BBS (r) system for OS/2
  2512.                                             Compiling your STARTUP.n file(s)
  2513.  
  2514.  
  2515.  
  2516.     Now that we've covered the text (source) file comprising the setup of  a
  2517.     node, you are  ready to "compile"  this file with  MAGNUM's MAKEMBBS.EXE
  2518.     program.    MAKEMBBS  scans  your  source  file  for errors and converts
  2519.     everything to a usable and readable "record" by MAGNUM BBS.  The  syntax
  2520.     for MAKEMBBS is:
  2521.  
  2522.            MAKEMBBS  X
  2523.  
  2524.     Where  X  is  the  node  number  of  your  source  file.  If you entered
  2525.     "MAKEMBBS 1"  (without quotes),  MAKEMBBS would  look for  STARTUP.1 and
  2526.     "compile"  it.    If  all  goes  well,  there  will be no error messages
  2527.     (warning messages are ok), your STARTUP.1 file will be deleted and a new
  2528.     file - MBBSINIT.1 will be created.
  2529.  
  2530.     DO NOT BE ALARMED that the  STARTUP.1 file was deleted!  There  are good
  2531.     reasons for the deletion but  rest assured, you could recreate  the file
  2532.     with the following command:
  2533.  
  2534.            MAKEMBBS -1 >STARTUP.1
  2535.  
  2536.     The minus sign (-) tells MAKEMBBS to recreate the STARTUP file from  the
  2537.     MBBSINIT  file.    The  reason  for  the  deletion  is so that you don't
  2538.     accidentally recompile the source  file which will overwrite  the actual
  2539.     record MAGNUM uses - the MBBSINIT file.  If you overwrite the file,  you
  2540.     will lose the updates MAGNUM makes to the record after every call - such
  2541.     as  incrementing  the  number  of  calls  received  for  that node, last
  2542.     caller's name, etc.
  2543.  
  2544.     For node 2, simply use the STARTUP.2 file instead, and change the 1's to
  2545.     2's in the above examples.  The same applies for nodes 3 and 4, etc.
  2546.  
  2547.     If you  start MAKEMBBS  without any  parameters, it  will "compile"  ALL
  2548.     STARTUP.x files it finds into their respective MBBSINIT.* files!
  2549.  
  2550.     * * * NOTE: The Installation program created a file UNMAKE.CMD for you.
  2551.                 By running UNMAKE, it will re-create all of your STARTUP.n
  2552.                 files from the MBBSINIT.n files it finds.
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2571.  
  2572.  
  2573.  
  2574.     MAGNUM BBS (r) system for OS/2                                Page  1-35
  2575.     The MODEL statement
  2576.  
  2577.  
  2578.     If you're configuring STARTUP.2 (for example), and wish to model it
  2579.     after STARTUP.1, the MODEL statement parm (1 in the above example)
  2580.     specifies which COMPILED file (MBBSINIT.n) to model after.  Note that
  2581.     although the MODEL statement is an easy way to configure a node after
  2582.     an existing node, the following parms should be unique to each node:
  2583.  
  2584.           WORK_DIR
  2585.           NODE
  2586.           DEVICENAME
  2587.           TTL_CALLS (should be kept separately for each node)
  2588.  
  2589.     Therefore, your STARTUP.2 file might look as follows:
  2590.  
  2591.           MODEL: 1
  2592.           WORK_DIR: d:\magnum\work_dir\2
  2593.           NODE: 2
  2594.           DEVICENAME: com2
  2595.           TTL_CALLS: 3437
  2596.  
  2597.     Note that the MODEL statement must be the first statement in the file,
  2598.     for anything prior to this statement will be overwritten.  Anything
  2599.     after this statement will be used as supplied.  Also note that the NODE
  2600.     parm need not be specified, the makembbs.exe compiler will supply the
  2601.     proper node parm for you.  ANY (and/or all) keywords/parameters are
  2602.     allowed after the MODEL statement.
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2634.  
  2635.  
  2636.  
  2637.     Page  1-36                                MAGNUM BBS (r) system for OS/2
  2638.                SPECIAL.n files: Detecting Error-Correction, FAX callers, etc
  2639.  
  2640.  
  2641.  
  2642.     As mentioned earlier, the Verbose (V1)  method of setup is not only  the
  2643.     easiest (and preferred) method of  setup, but also loses the  capability
  2644.     of detecting error-correcting modems.  This can be overcome with the use
  2645.     of the SPECIAL.n file(s).  The use of these files is extremely powerful,
  2646.     and although not  necessary for now,  you can always  come back to  this
  2647.     section later to find out how to implement these files.
  2648.  
  2649.     With SPECIAL.n file(s)  [which are to  be located int  the PGM_DIR], you
  2650.     have  the  ability  to  program  your  own actions based on modem result
  2651.     codes!  We recommend  the VERBOSE modem setting  (AT V1) for this.   The
  2652.     way it works is as follows.   When your modem answers an  incoming call,
  2653.     the two modems  begin a "handshake"  procedure.  During  this handshake,
  2654.     your modem may return many different information strings to Magnum, such
  2655.     as  CONNECT,  CARRIER,  FAX,  ARQ,  MNP,  LAP, etc.  Beginning with this
  2656.     release, you  can act  on any  one of  these through  an ASCII text file
  2657.     which you create by the name of SPECIAL.n (where n is the node#).  These
  2658.     SPECIAL.n files are optional,  and you can have  one for each node,  any
  2659.     node, or none.  These SPECIAL.n files are to be located in your  PROGRAM
  2660.     DIRectory.  By  way of example,  suppose you have  a fax-modem on  node1
  2661.     which returns the word FAX if it determined that the remote caller is  a
  2662.     fax machine.  Your SPECIAL.1 file might look like this:
  2663.  
  2664.            FAX {
  2665.                ex c:\fax\faxpgm.exe %com%
  2666.                }
  2667.  
  2668.            ARQ {
  2669.                ec
  2670.                }
  2671.  
  2672.            LAP {
  2673.                ec
  2674.                }
  2675.  
  2676.            MNP {
  2677.                ec
  2678.                }
  2679.  
  2680.     When you start  your BBS (MBBS.EXE),  it reads the  SPECIAL.n (where 'n'
  2681.     matches the node number of the corresponding STARTUP.n file).  When  the
  2682.     modem returns word results (such as FAX), Magnum compares it against the
  2683.     keywords in your SPECIAL.n file for  that node.  Your keywords must  end
  2684.     with the { character.  When it finds a match, it performs the statements
  2685.     it finds  for that  keyword until  the }  character is  reached.  In the
  2686.     above example,  when it  matches on  FAX, the  one statement between the
  2687.     curly brackets tells Magnum to EXecute the program c:\fax\faxpgm.exe and
  2688.     pass it the handle of the comport.  As you may have guessed, one of  the
  2689.     allowable program  statements is  EX, which  means EXecute.   In passing
  2690.     command-line arguments to  the program to  be executed, you  may specify
  2691.     any parameters you wish, however, the following parameters have  special
  2692.     meaning:
  2693.  
  2694.  
  2695.  
  2696.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2697.  
  2698.  
  2699.  
  2700.     MAGNUM BBS (r) system for OS/2                                Page  1-37
  2701.     SPECIAL.n files: Detecting Error-Correction, FAX callers, etc
  2702.  
  2703.  
  2704.            %com%    - Magnum will replace this with the comport handle.
  2705.            %baud%   - Magnum will replace this with the baudrate (DCE).
  2706.            %device% - Magnum will replace this with the device name.
  2707.  
  2708.     There are other allowable program statements.  In the above example, the
  2709.     keyword  ARQ  has  as  its  statement  EC - this program statement tells
  2710.     Magnum to treat the connection  as an error-correcting connection.   For
  2711.     those of  you using  Verbose modem  codes, this  would be  the means  of
  2712.     determining  and  setting  the  connection  to  error-correction = TRUE.
  2713.     Other error-correction word results are MNP and LAP.
  2714.  
  2715.     You are not limited to one program statement between the { and } braces.
  2716.     Other allowable program statements are:
  2717.  
  2718.       PAUSE nnnnn     -   Pauses nnnnn miliseconds (ie: 3000 = 3 seconds).
  2719.       SEND string     -   Sends "string" to the modem.  "string" is meant
  2720.                           to be a message to the user.  Modem commands
  2721.                           (ie: AT) will not work once carrier is raised.
  2722.       EX pgm [parms]  -   We covered this above.
  2723.       EC              -   No parms required (or allowed).  Covered above.
  2724.       LOG             -   No parms required (or allowed).  Writes to the
  2725.                           ACTIVITY.x file the string that the modem
  2726.                           returned upon carrier (ie: CONNECT 14400/ARQ/V42).
  2727.                           Only one LOG statement can be used per file.
  2728.                           Usual usage:    CONNECT {
  2729.                                                   log
  2730.                                                   }
  2731.                                    or:    ARQ {
  2732.                                               ec
  2733.                                               log
  2734.                                               }
  2735.       x cmd | * cmd   -   Any commands that you can type at the MBBS.EXE
  2736.                           "Command => " prompt may also be supplied as
  2737.                           a program statement here.
  2738.  
  2739.     NOTE:-At this time, only 5 modem codes (and thus 5 pairs of { and }
  2740.           program statements) are the maximum allowed.  This should be more
  2741.           than adequate.  Most of the modem codes you would probably deal
  2742.           with are:
  2743.               MNP, LAP, ARQ, FAX
  2744.           Once again, you are not limited to the above modem codes, you can
  2745.           use (and act on) any modem code that your modem returns. The above
  2746.           list of 4 modem codes are merely what we feel would probably be
  2747.           the most widely used.
  2748.          -The EX program statement does not actually start any programs, it
  2749.           merely sets the program to be started ONCE CARRIER IS RAISED!
  2750.           Once the program is actually started, it will start in its own
  2751.           session, and Magnum will terminate the program immediately in the
  2752.           event of a dropped carrier!  If you're using the %device% keyword
  2753.           as part of the EX program statement, you should have the OPENMODE
  2754.           parm of your STARTUP.x file for that node as S (shared).
  2755.          -The modem codes (ie: FAX) returned by your modem almost never
  2756.           appear on a line by themselves.  Keep in mind that the words
  2757.  
  2758.  
  2759.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2760.  
  2761.  
  2762.  
  2763.     Page  1-38                                MAGNUM BBS (r) system for OS/2
  2764.                SPECIAL.n files: Detecting Error-Correction, FAX callers, etc
  2765.  
  2766.  
  2767.           you're searching for in your SPECIAL.n file(s) (ie: FAX, ARQ, etc)
  2768.           are compared for in your actual modem result strings by checking
  2769.           to see if the word occurs at any point in the string.  In other
  2770.           words, if you're searching for ARQ, your modem may actually
  2771.           return:
  2772.               CONNECT 9600/ARQ
  2773.           This will match the ARQ word in your STARTUP.n file because ARQ
  2774.           does indeed occur within the modem result string.
  2775.          -The SEND program statement will work once carrier is raised.  Keep
  2776.           in mind that once the commands within your file have finished, the
  2777.           regular program, trademark and copyright notices will be sent to
  2778.           the remote modem (but a 'clear-screen' command is sent first).
  2779.           This is the purpose of the PAUSE command - you may want to use the
  2780.           PAUSE command after your last SEND statement to make certain the
  2781.           user has enough time to read your SEND statements.  DO NOT USE the
  2782.           SEND statement until after carrier is raised (usually indicated by
  2783.           CONNECT).
  2784.          -If you make any changes to a SPECIAL.n file, in order for the
  2785.           changes to "take", you must deactivate the node (x INACTIVE), and
  2786.           re-activate it (x ACTIVE) [ x=node# ].
  2787.          -Only .EXE programs are allowed.  If you wish to run a .CMD file,
  2788.           your EX statement should look like this:
  2789.                 EX C:\OS2\CMD.EXE /c SOMEFILE.CMD
  2790.           and you could also include any command-line parameters after the
  2791.           .CMD filename.  Note the /c (lowercase) - this is mandatory!
  2792.         - Note that all searching/matching for your modem keywords terminate
  2793.           upon raised carrier!  CONNECT is usually the last keyword your
  2794.           modem will return, however, once CONNECT is returned, as far as
  2795.           Magnum is concerned, carrier has been raised!  So if your modem is
  2796.           a FAXmodem and returns a string with the word FAX in it AFTER the
  2797.           string which contains the word CONNECT, the match for FAX will
  2798.           never materialize since carrier has already been raised.
  2799.  
  2800.     NOTE TO USERS OF FAX-MODEMS:
  2801.  
  2802.     Only certain  FAX-MODEMS will  work with  your SPECIAL.n  file(s).  Your
  2803.     modem will work IF:   1) it returns the word  FAX or some other word  to
  2804.     indicate  that  the  modem  at  the  other  end is a 'fax-modem' or 'fax
  2805.     machine'.  The older fax-modems and some of the newer fax-modems must be
  2806.     PLACED into fax mode by software... if yours is one such modem, it  will
  2807.     not work with your SPECIAL.n file.
  2808.  
  2809.     Your fax software that you call from the 'ex' statement of the SPECIAL.n
  2810.     file should be able  to take a parameter  of the device name  or comport
  2811.     handle in order for this scheme to work.  Your comport should be  opened
  2812.     in shared mode (OPENMODE:  S).
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2823.  
  2824.  
  2825.  
  2826.     Directory Structure of MAGNUM                                  Page  2-1
  2827.     Creating Subdirectories
  2828.  
  2829.  
  2830.     *--->>> This Chapter is to be used in conjunction with chapter 6 <<<---*
  2831.  
  2832.     IMPORTANT: EACH NODE MUST HAVE ITS OWN, UNIQUE WORK_DIR!
  2833.  
  2834.     The  Installation  program  has  created  several directories (under the
  2835.     MAGNUM  directory)  and  has  placed  0  or  more files in each of those
  2836.     directories.   Outlined below  is a  list of  the directories  and files
  2837.     belonging within those directories.  Note that some files will not exist
  2838.     until runtime; others may not exist until YOU create them (these will be
  2839.     optional files,  so they  won't be  necessary for  BBS operation).   Any
  2840.     files  which  were  NOT  installed  into  your  subdirectories  by   the
  2841.     installation program  (MAGINST.EXE) are  optional files  which you  must
  2842.     create if you wish to have its functionality implemented.
  2843.  
  2844.     IMPORTANT NOTE:  PLEASE READ THIS ENTIRE CHAPTER - CERTAIN MAGNUM
  2845.                      FEATURES ARE IMPLEMENTED BY THE PRESENCE OR ABSENCE
  2846.                      OF CERTAIN FILES!!  YOU MAY SKIM THIS CHAPTER AT FIRST,
  2847.                      THEN COME BACK TO IT LATER.
  2848.  
  2849.     The remainder of  this chapter lists  the file directory  structure, the
  2850.     files within those directories, and the order of the displayable files.
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2886.  
  2887.  
  2888.  
  2889.     Page  2-2                                  Directory Structure of MAGNUM
  2890.                                                  PROGRAM DIRECTORY (PGM_DIR)
  2891.  
  2892.  
  2893.                           PROGRAM DIRECTORY (PGM_DIR)
  2894.  
  2895.     MBBS.EXE     - Main (parent) program for MAGNUM BBS
  2896.     MSESSION.EXE - Child program runs user sessions
  2897.     MAKEMBBS.EXE - Configuration compiler/disassembler
  2898.     GETFILES.EXE - File xfer pgm called by MSESSION.EXE
  2899.     PUTFILES.EXE - File xfer pgm called by MSESSION.EXE
  2900.     MBBSEXEC.EXE - Magnum BBS executive maintanence pgm
  2901.     RJEMONIT.EXE - RJE monitor program (daemon process)
  2902.     EMAILIN.EXE  - Used for Internet E-mail.
  2903.     KILLPROC.EXE - Used internally by Magnum.
  2904.     STOPMBBS.EXE - Stops ALL MBBS.EXE and LOCALBBS.EXE programs running on
  2905.                    this computer and on your LAN (if LAN is used).
  2906.     STOPRJE.EXE  - Stops ALL RJEMONIT.EXE programs running on this computer
  2907.                    and on your LAN (if LAN is used).
  2908.     MAGFILE.EXE  - Utility program bulk-adds files to your file database(s).
  2909.     MAGDRIVE.EXE - Utility program to create input file for MAGFILE.EXE
  2910.                    (above) of an entire drive (ie: a CD-ROM drive).
  2911.     MAGFUTIL.EXE - Utility program to optionally maintain/optimize your file
  2912.                    database(s).  Performs virtually every imaginable test.
  2913.     MAGNUM.CMD   - Command file to change to drive & directory of PGM_DIR
  2914.                    and start the Magnum BBS system.
  2915.     MAGPATH.CMD  - Command file temporarily adds Magnum's paths to the
  2916.                    system path for the duration of the OS/2 command screen
  2917.                    or OS/2 command window.  It's recommended to add the
  2918.                    paths of your PGM_DIR, EXT_DIR and RJE_DIR directly into
  2919.                    the PATH statement of your CONFIG.SYS file rather than
  2920.                    to use this command file.
  2921.     UNMAKE.CMD   - Command file invokes MAKEMBBS.EXE to recreate ALL of your
  2922.                    STARTUP.n files from MBBSINIT.n files.
  2923.     STARTUP.x    - (x=node #) Human readable/modifiable configuration file.
  2924.     MBBSINIT.x   - (x=node #) Compiled format of your STARTUP.x file(s).
  2925.     ANNOUNCE.x   - (x=node #) When a node is in the 'announce only' mode,
  2926.                    each time an announcement is sent, Magnum logs this to a
  2927.                    file in your PROGRAM DIRectory called ANNOUNCE.LOG
  2928.     FREENODE.x   - As an example, on a system with 3 modem nodes on a rotary
  2929.                    (ie: dial node 1 and connect to the first available
  2930.                    modem), you can prohibit your callers from calling node 2
  2931.                    directly if node 1 is free, and disallow your callers
  2932.                    from calling node 3 directly if either node 1 or 2 is
  2933.                    free, etc.  Refer to the MAKEMBBS.EXE program for the
  2934.                    FREENODES keyword/parm which can allow you to do this.
  2935.                    If any of the nodes are available for calls (with no one
  2936.                    online on any of those nodes), the system will promptly
  2937.                    disconnect the call.  However, we realize this may be
  2938.                    rude, so the system will check for the presence of a file
  2939.                    in the pgm_dir by the name of FREENODE.x (where x is the
  2940.                    current node that is taking the call) and display the
  2941.                    contents of that file to the caller prior to
  2942.                    disconnecting.  In that MBBS.EXE displays the file, MILC
  2943.                    commands are NOT available.  The file should be a
  2944.                    straight ASCII text file, and should probably be limited
  2945.                    to 23 lines of text (although not necessary).
  2946.  
  2947.  
  2948.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  2949.  
  2950.  
  2951.  
  2952.     Directory Structure of MAGNUM                                  Page  2-3
  2953.     PROGRAM DIRECTORY (PGM_DIR)
  2954.  
  2955.  
  2956.     MBBS.ACE     - File containing ACE (Automatic Command Execution)
  2957.                    statements (events).
  2958.     ACE.LOG      - Contains ACE results - updated whenever an ACE command is
  2959.                    executed, and when system is started.
  2960.     REMAPDIR.x   - (x=node #). Used to remap directories for those running
  2961.                    additional copies of Magnum on their LAN.
  2962.     NOTMAIL.x    - For display when node x is in 'mail only' mode. Displayed
  2963.                    when a non-mail account tries to log on.
  2964.     TMP.ACE      - Any command that can be typed at MBBS.EXE's "Command => "
  2965.                    prompt can be optionally entered via a program you may be
  2966.                    developing.  Simply create a file called TMP.ACE in the
  2967.                    PROGRAM DIRectory and write your commands (one per line,
  2968.                    each line terminated by a CR/LF - in other words, it's an
  2969.                    ASCII text file). No queued commands are allowed (as
  2970.                    opposed to the MBBS.ACE file). Commands are to be written
  2971.                    exactly the way you'd type them at the "Command => "
  2972.                    prompt.  After all the commands in the file are executed,
  2973.                    Magnum will delete the file.  Any text lines not starting
  2974.                    with either a digit (node#) or the * character will be
  2975.                    discarded.  Magnum will check for the presence of TMP.ACE
  2976.                    only once per minute.  NOTE: This file (if it exists) is
  2977.                    deleted by Magnum when Magnum (MBBS.EXE) is first
  2978.                    started!  This file is meant to be created/used while
  2979.                    Magnum is actively running!
  2980.     ATENDx.ACE   - Where 'x' is node number.  This file can contain any
  2981.                    commands in it that you could ordinarily type at the MBBS
  2982.                    "Command => " prompt.  When an online session for node x
  2983.                    finishes, if this file exists, the commands within will
  2984.                    be executed.  Queued commands are not allowed.  Like
  2985.                    entering a command at the "Command => " prompt, the BBS
  2986.                    essentially freezes until that command is complete.  Try
  2987.                    to refrain from running any programs at this point.  This
  2988.                    is an ASCII text file; commands start with * or a digit.
  2989.     MBBS.ICO     - Icon file for MBBS.EXE.
  2990.     MSESSION.ICO - This Icon file is automatically used under OS/2 1.x
  2991.                    whenever someone logs on.  However, if you want this icon
  2992.                    to be used under OS/2 2.x, create the file MBBS.ACE (or
  2993.                    add to it) with the following statements:
  2994.                        *,1 ICON d:\magnum\pgm_dir\msession.ico
  2995.                        *,2 ICON d:\magnum\pgm_dir\msession.ico
  2996.                    etc (for each node) where 'd:' is the drive letter of
  2997.                    where your Magnum system is installed.
  2998.     MMPATCH.     - The [optional] presence of this file invoked a fix in
  2999.                    pre 8.xx Magnum versions.  If this file is still present
  3000.                    on your system you should delete it.
  3001.     CLEARBUF.FLG - If this file exists, Magnum will perform a read of the
  3002.                    modem buffer prior to closing until no more characters
  3003.                    remain in the buffer, or until the loop has completed
  3004.                    10 iterations.
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3012.  
  3013.  
  3014.  
  3015.     Page  2-4                                  Directory Structure of MAGNUM
  3016.                                                  SESSION_DIRECTORY (SES_DIR)
  3017.  
  3018.  
  3019.                           SESSION DIRECTORY (SES_DIR)
  3020.  
  3021.     SPLITKEY.EXE - Rebuilds *.KEY files from USER.DAT
  3022.     RMAILMAP.EXE - For those with the Extended MsgBase module.  Maps
  3023.                    incoming msgs to specific msgbases.
  3024.     AMMO.MAG     - Optional - used for Remote Mail.
  3025.     NOCHANGE.LST - Optional - defines unchangeable parameters within the
  3026.                    [E]nvironment selection of the main menu.
  3027.     BADNAME.LST  - List of unallowable logon names
  3028.     BADUPLD.LST  - List of unallowable upload filenames
  3029.     NOANSCHK.LST - List of file extensions NOT to perform an ANSI check on
  3030.                    after upload.
  3031.     COMPRESS.LST - Define external file compression pgms.
  3032.     USER.KEY     - The Keyfile used during logons.
  3033.     USER_*.KEY   - Sub-Keyfile used during logons.
  3034.     USER.DAT     - The user database
  3035.     FILE.DAT     - The main file database (FileBase 0).
  3036.     MSG.DAT      - The main message database (MsgBase 0).
  3037.     RJE.DAT      - The RJE database
  3038.     UTILIZ.DAT   - The utilization database (optional)
  3039.     MILC.SUB     - (Optional). If present, defines characters which are to
  3040.                    be replaced (substituted) with other characters.
  3041.     QSECy.BBS    - y=user security level.  If this file exists, it will be
  3042.                    displayed ONCE to users whose security levels match y.
  3043.     SECy.BBS     - y=user security level.  Like QSECy.BBS above, but
  3044.                    displays every time.
  3045.     IDz.BBS      - z=specific user id.   If this file exists, it will be
  3046.                    displayed ONCE to the user whose ID matches z.
  3047.     *.USR        - Where * is an ID number; these files are transient and
  3048.                    are created by Magnum for each user who's currently
  3049.                    logged on and deleted upon logoff or dropped carrier.
  3050.     WHOS.ON      - If you wish to override the display of the "[W]hos On"
  3051.                    command with that of your own, simply create the file
  3052.                    WHOS.ON in your SESSION DIRectory. The contents of this
  3053.                    file should contain the MILC commands you wish in order
  3054.                    to convey the information you wish to display during the
  3055.                    "[W]hos on" command.  Note that this file will NOT be
  3056.                    used for information regarding a NEW (first time) caller
  3057.                    - the default display will be used for a first time
  3058.                    caller instead.  The way the WHOS.ON file works is that
  3059.                    it's similar to a displayable MILC file, but it's
  3060.                    processed as soon as the password is entered.  It's not
  3061.                    displayed, but rather interpreted (MILC characters are
  3062.                    replaced) and written to the nnnnn.USR file for that ID
  3063.                    on that node.  Whenever someone does a "[W]ho's On" from
  3064.                    the main menu, Magnum simply displays the contents of
  3065.                    each of the *.USR files it finds.
  3066.     *.USX        - Where * is a user's ID number.  The presence of any of
  3067.                    these files (contents are unimportant) indicates to
  3068.                    exclude this user from appearing in the "[W]ho's On"
  3069.                    command.  For example, the Sysop (ID: /0) may wish to
  3070.                    exclude themselves by creating a 0.USX file.  You may
  3071.                    wish to exclude others too (ie: celebrities, CEO's, etc).
  3072.  
  3073.  
  3074.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3075.  
  3076.  
  3077.  
  3078.     Directory Structure of MAGNUM                                  Page  2-5
  3079.     SESSION_DIRECTORY (SES_DIR)
  3080.  
  3081.  
  3082.     NOSHOW.RMM   - For those using Magnum's Remote Mail (AMMO), part of the
  3083.                    AMMO process is to place MsgMarkers within the MsgBases.
  3084.                    Some Sysops don't want to see these MsgMarkers.  If you
  3085.                    wish to exclude MsgMarkers from showing up when reading
  3086.                    your mail, simply create this file (contents are
  3087.                    unimportant).
  3088.                --> NOTE: Version 8.xx eliminated MsgMarkers!  There's no
  3089.                          more need for this file unless you still have
  3090.                          left over MsgMarkers from a version prior to v8.xx.
  3091.     Uid.MG       - Where 'id' is the user's ID number.  For those using the
  3092.                    Extended MsgBase module.  Identical to the msg .GRP files
  3093.                    in format, if this file exists for a certain user ID,
  3094.                    that user will belong to his own 'group' regardless of
  3095.                    what msggrp they were originally assigned to.  This file
  3096.                    overrides any group assigned to the user.
  3097.     Uid.FG       - Where 'id' is the user's ID number.  For those using the
  3098.                    Extended FileBase module.  Identical to the file .GRP
  3099.                    files in format, if this file exists for a certain user
  3100.                    ID, that user will belong to his own 'group' regardless
  3101.                    of what filegrp they were originally assigned to.  This
  3102.                    file overrides any group assigned to the user.
  3103.     HELLO.Q      - The 'Welcome' file to be included in the QWK packet.
  3104.                    No MILC commands should be placed in this file!
  3105.     NEWS.Q       - The 'News' file to be included in the QWK packet.
  3106.                    No MILC commands should be placed in this file!
  3107.     GOODBYE.Q    - The 'GoodBye' file to be included in the QWK packet.
  3108.                    No MILC commands should be placed in this file!
  3109.     FILECONT.BBS - Due to the nature of high-speed modems, large modem
  3110.                    buffers and other factors, <Ctrl-X> is NOT always
  3111.                    trapped during NonStop File Listing. For this reason,
  3112.                    when a user chooses N (NonStop) at the FileListing's
  3113.                    "More" prompt, Magnum checks for the presence of
  3114.                    FILECONT.BBS in your SESSION DIRectory.  If this file
  3115.                    exists, Magnum will display the file to the user.
  3116.                    Within this file, you can warn the user that during a
  3117.                    nonstop file listing, they may not be able to break out
  3118.                    of it!  You may also prompt the user as to whether
  3119.                    they're sure if they want to continue with their choice
  3120.                    of Nonstop. Upon return, Magnum checks MILC variable @Z0
  3121.                    for the presence of Y or N. If it contains Y, Nonstop
  3122.                    filelisting will continue. If N or any other character
  3123.                    they'll be reprompted with the "More" prompt.  The prior
  3124.                    contents (if any) of the @Z0 variable will be preserved
  3125.                    prior to the "More" function ending. An example of the
  3126.                    contents of this file:
  3127.                      NonStop file listing may not be stoppable!  Choose
  3128.                      [M]ake to get a downloadable listing of files.
  3129.                      Continue with NonStop Anyway? (Y/N) => @Z0('yn');
  3130.     BRDCAST.ALL  - Optional text file you or an application program can
  3131.                    create and place in your SESSION DIRectory.  When MBBS
  3132.                    detects the presence of this file it copies it to
  3133.                    BRDCAST.n (where n is the node number) of all nodes that
  3134.                    meet the following criteria: identical session directory
  3135.  
  3136.  
  3137.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3138.  
  3139.  
  3140.  
  3141.     Page  2-6                                  Directory Structure of MAGNUM
  3142.                                                  SESSION_DIRECTORY (SES_DIR)
  3143.  
  3144.  
  3145.                    as the session directory the BRDCAST.ALL file is found
  3146.                    in; the node is active and a caller is logged onto that
  3147.                    node.  After making copies of this file to all nodes
  3148.                    matching the above criteria, the original file
  3149.                    (BRDCAST.ALL) is deleted.  See BRDCAST.n (below) for
  3150.                    information as to how Magnum processes BRDCAST.n files.
  3151.     BRDCAST.n    - While a caller is online, MSESSION.EXE checks for the
  3152.                    presence of a file in the SESSION DIRectory defined for
  3153.                    that node for a file by the name of BRDCAST.n (where n is
  3154.                    the node number).  If the file is found it immediately
  3155.                    stops whatever the online user is doing (unless they're
  3156.                    entering a message or xfering a file) and clears the
  3157.                    user's screen, displays the string:
  3158.                             " * * *  B R O A D C A S T  * * *",
  3159.                    then displays the BRDCAST.N file, and then presents the
  3160.                    "PRESS ENTER" prompt.  After the file displays and the
  3161.                    user presses ENTER, the screen is restored to where they
  3162.                    were prior to the display of the file and the BRDCAST.n
  3163.                    file is deleted.  The format of the BRDCAST.n file is an
  3164.                    ASCII text file (each line terminated by a CR/LF pair)
  3165.                    and may contain MILC commands!  Because of the capability
  3166.                    of containing MILC commands, the capabilities you build
  3167.                    into broadcast files are only limited by your imagination
  3168.                    (ie: E2/E3 file xfer, a broadcast 'menu', starting an
  3169.                    interactive program w/ E0 or a background program w/ E1,
  3170.                    or an immediate on-the-fly questionairre.  Example:
  3171.                       Did you just feel that earthquake? (Y/N) => @z2('yn');
  3172.                       @z2("Felt EarthQuake: ");
  3173.                    etc.  Its advised that you (or your application program)
  3174.                    create a BRDCAST.n file or a BRDCAST.ALL file using a
  3175.                    different name and then either rename or copy it to
  3176.                    BRDCAST.n or BRDCAST.ALL depending on which one you wish.
  3177.     QWK.MAP      - Map file for incoming QWK .REP (or QWK) packets.  Refer
  3178.                    to the text within this file for its usage.
  3179.     CONF_NUM.TXT - Text file shows how QWK conference numbers are created
  3180.                    from Magnum MsgBase:ConfNum format.
  3181.     ACCTTYPE.x   - The account TYPE for any user record can now be any
  3182.                    character or letter you wish.  Up until this point, only
  3183.                    two account types existed: U for USER accounts, and M for
  3184.                    MagnumMAIL accounts.  These two types are still in use
  3185.                    and always will be.  However, in preparation for outside
  3186.                    mail exchange with other mail formats, you can now assign
  3187.                    an account type of other than U or M.  For example, to
  3188.                    exchange mail with a QWK 'net', you might assign a
  3189.                    certain account for that purpose and classify it's type
  3190.                    as Q (for QWK), or I (for Internet).  If an account other
  3191.                    than U or M logs on, Magnum will look in your SESSION DIR
  3192.                    for (and display) the file ACCTTYPE.x (where 'x' is the
  3193.                    account type) if it exists.  This file can contain MILC
  3194.                    commands to start an RJE or child (door) process to
  3195.                    perform whatever it is you wish.  This file displays
  3196.                    after logon and BEFORE entry into the main menu.
  3197.                    To set up a QWK 'net' account, you must log on via the
  3198.  
  3199.  
  3200.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3201.  
  3202.  
  3203.  
  3204.     Directory Structure of MAGNUM                                  Page  2-7
  3205.     SESSION_DIRECTORY (SES_DIR)
  3206.  
  3207.  
  3208.                    console as a new user, providing a mnemonic name such as
  3209.                    "QWK GLOBALNET" or "GLOBALNET QWK" for example.  Choose a
  3210.                    default xfer protocol such as Zmodem.  After the new
  3211.                    account has been established, log off and then log on as
  3212.                    Sysop (/0).  Go into the Sysop menu and pull up the user
  3213.                    record for the new account and change the account TYPE to
  3214.                    Q (to denote QWK, but the letter could be anything other
  3215.                    than U or M) . You should also create or modify the
  3216.                    display file NEWMSG.BBS (in your DISPLAY DIRectory) to
  3217.                    inform your users of ID's to/from outside mail networks
  3218.                    (ie: enter a msg to ID /nnn for GLOBALNET, /yyy for
  3219.                    ALTERNET, etc).
  3220.                    NOTE: Account types other than U (user) will not invoke
  3221.                          the standard HELLO?.BBS files or other display
  3222.                          files prior to entering the main menu after logon,
  3223.                          nonstop display is automatic, and PRESS ENTER
  3224.                          prompts are bypassed.
  3225.     INTERNID.DAT - This file contains user-defined Internet E-mail addresses
  3226.                    for your system.  For example, if ID /0 (sysop) chooses
  3227.                    the name "sysop" for their address, the full internet
  3228.                    e-mail address will be sysop@domain.name where
  3229.                    domain.name is the domain_name parm provided to the
  3230.                    INTERNET_DOMAIN_NAME keyword in your STARTUP.x file(s).
  3231.                    The first time someone logs onto your system after
  3232.                    installing this release, this file will be created and
  3233.                    initialized with the same amount of records as in your
  3234.                    USER.DAT file, this may take some time but it will only
  3235.                    happen once.  New user default e-mail names will be idx
  3236.                    where x=ID#.
  3237.                            Example: /0 = id0@mybbs.com
  3238.                                     /1 = id1@mybbs.com
  3239.                                     /2 = id2@mybbs.com
  3240.                                     etc.
  3241.                    idx is user-changeable (Environment menu option 27) to be
  3242.                    any unique name up to 25 chars (the "@mybbs.com" will be
  3243.                    appended during bbs functions but is not part of the 25
  3244.                    char limit).  The user-changeable portion appears to the
  3245.                    left of the @mybbs.com portion.
  3246.     DUP.UL - uploading of duplicate files are allowed if this file is
  3247.              present (but not recommended).  To allow duplicate files to be
  3248.              uploaded, create the file DUP.UL in your SESSION DIRectory
  3249.              (must be 1 or more bytes in length - ie: put "Hello World" in
  3250.              the file to make it more than 1 byte in size).  If this file is
  3251.              present, the system will bypass the check for duplicate files
  3252.              and allow the upload. To download, use the #nnnn method instead
  3253.              of filename.  If you allow duplicate filenames for upload, the
  3254.              system will only check to see if a duplicate exists in the file
  3255.              area being uploaded to; Magnum will only allow duplicates in
  3256.              different file areas.
  3257.     PREDOB.BBS - When the GET_DOB keyword is activated in your STARTUP
  3258.                  file(s), some people logging onto your system for the first
  3259.                  time are sensitive about being asked their date of birth.
  3260.                  If you create an optional file PREDOB.BBS in your SESSION
  3261.  
  3262.  
  3263.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3264.  
  3265.  
  3266.  
  3267.     Page  2-8                                  Directory Structure of MAGNUM
  3268.                                                  SESSION_DIRECTORY (SES_DIR)
  3269.  
  3270.  
  3271.                  DIRectory, you can alleviate their sensitivity with any
  3272.                  text you wish.  An example of the contents of this optional
  3273.                  file might be "In the event you forget your password, we
  3274.                  will need to know your date of birth for verification".
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3327.  
  3328.  
  3329.  
  3330.     Directory Structure of MAGNUM                                  Page  2-9
  3331.     BULLETIN, MENU, HELP Directories (BUL_DIR, MNU_DIR, HLP_DIR)
  3332.  
  3333.  
  3334.                           BULLETIN DIRECTORY (BUL_DIR)
  3335.  
  3336.     BULLETIN.BBS - The Bulletin File.
  3337.     NEWSLTR.BBS  - The NewsLetter File.
  3338.     QUESTION.BBS - The Question File.
  3339.     QUESNEW.BBS  - The New-User Questionairre.
  3340.  
  3341.                             MENU DIRECTORY (MNU_DIR)
  3342.  
  3343.     MAINMENU.BBS      if any of these files exist, Magnum displays the file
  3344.     FILEMENU.BBS      for the menu instead of the dynamically-built internal
  3345.     MSGMENU.BBS       menu.
  3346.     SYSMENU.BBS
  3347.     RJEMENU.BBS
  3348.  
  3349.                             HELP DIRECTORY (HLP_DIR)
  3350.  
  3351.     MAINHELP.BBS      These are the "help" files Magnum looks for when a
  3352.     FILEHELP.BBS      user wants help in the section of the BBS they're in.
  3353.     MSGHELP.BBS
  3354.     SYSHELP.BBS
  3355.     RJEHELP.BBS
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3390.  
  3391.  
  3392.  
  3393.     Page  2-10                                 Directory Structure of MAGNUM
  3394.                                                  DISPLAY DIRECTORY (DSP_DIR)
  3395.  
  3396.  
  3397.                           DISPLAY DIRECTORY (DSP_DIR)
  3398.  
  3399.     HELLO1.BBS   - Displayed after logon         /-------------------------\
  3400.     HELLO2.BBS   - Displayed after logon         | NOTE: You may also have |
  3401.     HELLO3.BBS   - Displayed after logon         |       extensions of     |
  3402.     NEWUSER.BBS  - Displayed for new user only   |       .SCR              |
  3403.     BIRTHDAY.BBS - Displayed on user's birthday  |       See the chapter   |
  3404.     GOODBYE.BBS  - Displayed at logoff           |       on "Customizing   |
  3405.     PRELOG.BBS   - Displayed before logon        |       Magnum & Display  |
  3406.     LOWBAUD.BBS  - Displayed if baud too low     |       Files".           |
  3407.     CLOSED.BBS   - Displayed if a closed BBS     \-------------------------/
  3408.     OPEN.BBS     - Displayed if running an open BBS and new user not found
  3409.                    in user database.
  3410.     QUOTES.BBS   - Displays an ending quote (at logoff).
  3411.     PREUP.BBS    - Displays prior to upload
  3412.     POSTUP.BBS   - Displays after an upload
  3413.     PREDOWN.BBS  - Displays prior to download
  3414.     POSTDOWN.BBS - Displays after download
  3415.     UDRATIO.BBS  - (u/l to d/l ratio exceeded)
  3416.     PRELIST.BBS  - (pre file-list message)
  3417.     NEWMSG.BBS   - Displays when a user chooses "[E]nter New Message".  This
  3418.                    file is an ideal place to put some brief information as
  3419.                    to what ID to write to for "Tech Support", "Marketing
  3420.                    Information", etc.
  3421.     MAINOPT1.BBS - Displays from main [1]
  3422.     MAINOPT2.BBS - Displays from main [2]
  3423.     FILEOPT1.BBS - Displays from file [1]
  3424.     FILEOPT2.BBS - Displays from file [2]
  3425.     MSGOPT1.BBS  - Displays from msg [1]
  3426.     MSGOPT2.BBS  - Displays from msg [2]
  3427.     RJEOPT1.BBS  - Displays from rje [1]
  3428.     RJEOPT2.BBS  - Displays from rje [2]
  3429.     SYSOPT1.BBS  - Displays from sys [1]
  3430.     SYSOPT2.BBS  - Displays from sys [2]
  3431.     FILESRCH.BBS - Displays (if exists) in lieu of the built-in text when
  3432.                    the "[T]ext Search" function of the file menu is chosen.
  3433.     FDIR_x.BBS   - Displays when user chooses [L]ist command from Files
  3434.                    menu, such that if user lists area G for example,
  3435.                    FDIR_G.BBS will display prior to listing the files in
  3436.                    area G. FDIR_x.* files are optional and will only display
  3437.                    if the matching FDIR_x.* file exists.  CAUTION: Avoid
  3438.                    using MILC commands which halt the display or ask for
  3439.                    user input because user's may wish to capture your entire
  3440.                    entire listing while viewing it in a nonstop fashion.
  3441.     FDIRcnnn.BBS - For those with the Extended FileBase module.  Identical
  3442.                    in function to FDIR_x.BBS but for 'extended' FileBases
  3443.                    (1 to 255).  The naming convention is FDIRcnnn.BBS where
  3444.                    c is the area within the FileBase, and nnn is the 3-digit
  3445.                    (all 3 required) FileBase number.
  3446.     PREBADV.BBS  - Displays if Mismatch in birthdate or phone# verification
  3447.                    (see VERIFY_DOB and VERIFY_PHONE in chapter 1). See Ch 6.
  3448.     POSTBADV.BBS - Displays if Mismatch in birthdate or phone# verification
  3449.                    (see VERIFY_DOB and VERIFY_PHONE in chapter 1). See Ch 6.
  3450.  
  3451.  
  3452.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3453.  
  3454.  
  3455.  
  3456.     Directory Structure of MAGNUM                                 Page  2-11
  3457.     DISPLAY DIRECTORY (DSP_DIR)
  3458.  
  3459.  
  3460.     NEWMSG.BBS   - If this optional file exists, it will be displayed when
  3461.                    the user chooses "[E]nter Message" from the Message Menu.
  3462.     CMT2SYS.BBS  - If this optional file exists, it will be displayed when
  3463.                    the user chooses "[C]omment to Sysop" from the Main Menu.
  3464.     PREREAD.BBS  - If this optional file exists, it will be displayed when
  3465.                    the user chooses "[R]ead Messages" from the Message Menu.
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3516.  
  3517.  
  3518.  
  3519.     Page  2-12                                 Directory Structure of MAGNUM
  3520.                                                 EXTERNAL DIRECTORY (EXT_DIR)
  3521.  
  3522.  
  3523.                           EXTERNAL DIRECTORY (EXT_DIR)
  3524.  
  3525.     ARC2.EXE     - Used for creating, viewing, etc of compressed .ARC files.
  3526.                    Not included in this distribution.  You may download
  3527.                    ARC201.EXE from our BBS (rename it ARC2.EXE) if you wish
  3528.                    to have support for the .ARC compression format.
  3529.     PKZIP2.EXE   \ Used for creating, viewing, etc of compressed .ZIP files.
  3530.     PKUNZIP2.EXE /
  3531.     ZIPCMT.x     - Comments for uploaded .ZIP files.  x=node#.  When a user
  3532.                    finishes uploading a new .ZIP file to the BBS, the
  3533.                    contents of the file ZIPCMT.x will be added as a comment
  3534.                    to the .ZIP file.
  3535.     CHKANSI.EXE  - ANSI Escape Sequence Checker - called by both the message
  3536.                    and file section - if this program detects a harmful ANSI
  3537.                    escape sequence to redefine keyboard key(s), MAGNUM BBS
  3538.                    immediately ends the user's session and locks them out of
  3539.                    the system.  You can delete or rename this program if you
  3540.                    do not wish Magnum to use it (sometime false harmful
  3541.                    escape sequences are inadvetantly reproduced by file
  3542.                    compression methods such as ZIP, ARC, etc).
  3543.     UTILIZ.EXE   - The Utilization reporting program.
  3544.     MAKEDOOR.BBS - Sample only.  File shows how to construct a DOOR.SYS file
  3545.                    specific to your BBS.  Some modications are required.
  3546.     CHILDREN.BBS - Menu for external programs known as 'doors' on DOS BBS's.
  3547.                    The way this works is that upon exit of displaying this
  3548.                    file, the variable @Z0 should hold the program name (no
  3549.                    path or drive, just program name - the program is
  3550.                    expected to be found in the EXTERNAL DIRectory), variable
  3551.                    @Z1 should hold command line arguments to be passed to
  3552.                    the child (if any), and @N0 should have it's bits set as
  3553.                    follows:
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3579.  
  3580.  
  3581.  
  3582.     Directory Structure of MAGNUM                                 Page  2-13
  3583.     EXTERNAL DIRECTORY (EXT_DIR)
  3584.  
  3585.  
  3586.               128  64  32  16  8  4  2  1
  3587.                 |   |   |   |  |  |  |  |
  3588.                 |   |   |   |  |  |  |  \-> 1=echo user input to comport
  3589.                 |   |   |   |  |  |  |      0=no echo (child handles echo)
  3590.                 |   |   |   |  |  |  \----> 1=cooked mode
  3591.                 |   |   |   |  |  |         0=raw mode
  3592.                 |   |   |   |  |  \-------> 1=CR translates to CR/LF pair
  3593.                 |   |   |   |  |            0=no translation to CR/LF pair
  3594.                 |   |   |   |  \----------> 1=CR tranlates to LF
  3595.                 |   |   |   |               0=no translation to LF
  3596.                 |   |   |   \-------------> 1=CR translates to NUL
  3597.                 |   |   |                   0=no translation to NUL
  3598.                 |   |   \-----------------> Not used
  3599.                 |
  3600.                 |   \---------------------> 1=Mark the ACTIVITY.x handle as
  3601.                 |                             inheritbale by the child
  3602.                 |                             process. See MILC command @V92
  3603.                 |                           0=ACTIVITY.x handle is not
  3604.                 |                             inheritable by the child
  3605.                 |                             process (default).
  3606.                 \-------------------------> 1=Mark comport handle as
  3607.                                               inheritable by the child
  3608.                                               process. See MILC command @V0.
  3609.                                             0=Comport handle is not
  3610.                                               inheritable by the child
  3611.                                               process (default).
  3612.  
  3613.  
  3614.          NOTE: For most doors, such as "adventure", the the following
  3615.                statement would be required:
  3616.  
  3617.                                          @N0=7;
  3618.  
  3619.                This would set bits 1, 2, and 4 on. To compute the value you
  3620.                need for any particular door, add up the bit "field" numbers
  3621.                which have their bits set to 1. For instance, in the above
  3622.                example, bit fields 1, 2 and 4 are each set to 1.  Therefore,
  3623.                adding up bit fields (1+2+4) gives a result of 7.  If bit
  3624.                fields 16 and 2 were the only ones set, then 16+2 = 18, thus
  3625.                your @N0 assignment would be @N0=18;
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3642.  
  3643.  
  3644.  
  3645.     Page  2-14                                 Directory Structure of MAGNUM
  3646.                                                      RJE DIRECTORY (RJE_DIR)
  3647.  
  3648.  
  3649.                             RJE DIRECTORY (RJE_DIR)
  3650.  
  3651.     When in the  RJE section of  the BBS, the  [L]ist/Execute menu selection
  3652.     will look for, and display the file RJELIST.BBS (or RJELIST.SCR) in  the
  3653.     RJE DIRectory.   In  our sample  distribution, the  following files have
  3654.     been placed in your RJE directory by the MAGINST.EXE program:
  3655.  
  3656.     RJELIST.BBS  - Sample RJE list/execute menu.
  3657.     MSGLIST.EXE  - Gathers mail, converts it to .QWK or Internet E-mail
  3658.                    format.
  3659.     MSGLIST.RJE  - RJE/MILC processing for offline mail.
  3660.     USERMSGS.CMD - Sample RJE command file for the MSGLIST samples above.
  3661.     ADDRJE.EXE   - Adds RJE files to file database. For more info on this
  3662.                    program, execute it without any parms.
  3663.     MARKUNRD.MEX - RJE process to unmark marked messages for a given user.
  3664.     MARKUNRD.RJE - Starts MARKUNRD.MEX
  3665.     GETQWK.RJE   - RJE file handles uploads of .QWK files (offline mail).
  3666.     RJEQWK.EXE   - Processes uploaded .QWK files (offline mail).
  3667.  
  3668.       **** All RJE programs are expected to be found in this subdirectory!
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3705.  
  3706.  
  3707.  
  3708.     Directory Structure of MAGNUM                                 Page  2-15
  3709.     MSG,WORK,USER,SYSOUT Dirs (MSG_DIR,WORK_DIR,USER_DIR,SYSOUT)
  3710.  
  3711.  
  3712.                           MESSAGE DIRECTORY (MSG_DIR)
  3713.  
  3714.     This  is  the  MAIN  MsgBase  (MsgBase  0)  where message files go.  Any
  3715.     messages which are a description of an available file for download, will
  3716.     have the same filename as the downloadable file.  MSG DIR is the  parent
  3717.     subdirectory,  and  there  MUST  be  26 subdirectory entries within this
  3718.     directory, named A to Z. (IE:  \magnum\msg_dir\a, \magnum\msg_dir\b  ...
  3719.     \magnum\msg_dir\z).  These 26 subdirectories will be created for you  by
  3720.     the MAGINST.EXE program.
  3721.  
  3722.                            WORK DIRECTORY (WORK_DIR)
  3723.  
  3724.     Temporary  workspace  used  by  Magnum  during  sessions.   CAUTION:  WE
  3725.     STRONGLY RECOMMEND A  UNIQUE PATHNAME FOR  EACH NODE USED  IN YOUR BBS!!
  3726.     We recommend d:\MAGNUM\WORK_DIR\1  for node 1,  d:\MAGNUM\WORK_DIR\2 for
  3727.     node 2, etc (where 'd:'  is the drive letter your Magnum BBS system  was
  3728.     installed on).
  3729.  
  3730.     CLEANUP.CMD  --\
  3731.     _CLEANUP.CMD    >-> Technical: MSESSION.EXE creates a CLEANUP.CMD file
  3732.     GCLEANUP.CMD --/    in the WORK_DIR during an online session.  When the
  3733.                         session ends, MBBS.EXE will execute this command
  3734.                         file in the background.  When finished, the file is
  3735.                         deleted.  The CLEANUP.CMD file will also check for
  3736.                         the existence of _CLEANUP.CMD in the WORK_DIR (note
  3737.                         the _ character in _CLEANUP.CMD) and if it finds it,
  3738.                         it will call that file and delete it when finished.
  3739.                         The CLEANUP.CMD file will also check for the
  3740.                         existence of GCLEANUP.CMD in the WORK_DIR (the G in
  3741.                         GCLEANUP.CMD denotes a GENERAL cleanup command file)
  3742.                         and if it finds it, it will call that file but will
  3743.                         NOT delete it when finished.  You (or your custom
  3744.                         application program) can create a _CLEANUP.CMD
  3745.                         and/or GCLEANUP.CMD file for selected or each
  3746.                         WORK_DIR.  Note that these cleanup command files are
  3747.                         running in the background, detached, therefore no
  3748.                         screen or keyboard I/O is allowed.  Consider this
  3749.                         capability identical to running an RJE (background)
  3750.                         process that gets called whenever a session
  3751.                         terminates.
  3752.                         IMPORTANT: If you take advantage of the _CLEANUP.CMD
  3753.                                    or GCLEANUP.CMD files, execute your
  3754.                                    commands within those files as quickly
  3755.                                    as possible because a new CLEANUP.CMD
  3756.                                    file will be created immediately when the
  3757.                                    next caller logs on.
  3758.  
  3759.                            SYSOUT DIRECTORY (SYSOUT)
  3760.  
  3761.     ACTIVITY.x   - (x=cnode#) Activity Log for node x.
  3762.     SYSCHAT.LOG  - The log of Chat between Sysop<->User.
  3763.     GRPCHAT.LOG  - The log of Group Chat.
  3764.     *.R??        - ??=com port number (response files).  Any file containing
  3765.  
  3766.  
  3767.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3768.  
  3769.  
  3770.  
  3771.     Page  2-16                                 Directory Structure of MAGNUM
  3772.                 MSG,WORK,USER,SYSOUT Dirs (MSG_DIR,WORK_DIR,USER_DIR,SYSOUT)
  3773.  
  3774.  
  3775.                    MILC commands to write answers to a response file will
  3776.                    be, placed here.  The name of the response file is the
  3777.                    name of the file containing those MILC commands, but will
  3778.                    have an extension of R?? (R for Response, ?? will be
  3779.                    replaced by the node# 01, 02, etc).
  3780.  
  3781.                            USER DIRECTORY (USER_DIR)
  3782.  
  3783.     If you  allow your  users access  to MILC  commands @Zx  and/or @Nx, any
  3784.     messages they  create containing  the @Zx  or @Nx  commands which  write
  3785.     output will be written to the same filename as the file containing these
  3786.     commands, but  placed in  this directory.   Also,  user NotePads will be
  3787.     kept in this directory.
  3788.  
  3789.     Additionally, the following file(s) may be present as your BBS gets
  3790.     used:
  3791.  
  3792.     DP*.ZIP     - DataPointer file (* = user's ID) for Extended Msg & File
  3793.                   bases.  Holds info as to last new filesearch and msgread
  3794.                   for each of the extended msg & file areas.
  3795.     U*.FMK      - Where * is the user's ID number.  Any such files contain
  3796.                   a binary "list" of marked files the user may have marked
  3797.                   or which Magnum may have marked for them.
  3798.     ID*.NPT     - Where * is the user's ID number.  This holds the NotePad
  3799.                   Titles for this user.
  3800.     ID*.Nnn     - Where * is the user's ID number, and nn is the NotePad
  3801.                   number (00-99) for the user.
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3831.  
  3832.  
  3833.  
  3834.     Directory Structure of MAGNUM                                 Page  2-17
  3835.     Order of Display Files
  3836.  
  3837.  
  3838.  
  3839.     Although a little premature for this, you will need to know the order of
  3840.     the display files for later:
  3841.  
  3842.     ANNOUNCE.x  - displays only if node is used for "announce only"
  3843.                    (x=node #) [logs each 'announcement' to ANNOUNCE.LOG in
  3844.                    your PROGRAM DIRectory].
  3845.     LOWBAUD.BBS - displays if user's baud rate is less than sysop's
  3846.                    predefined lowest baud rate
  3847.     PRELOG.BBS  - displays after making connection at acceptable baud rate.
  3848.     CLOSED.BBS  - displays if user not in database and sysop running a
  3849.                    closed bbs.
  3850.     OPEN.BBS    - displays if user not in database and sysop running an
  3851.                    open bbs.
  3852.     QUESNEW.BBS - displays if applicable and is user's 1st call (and an OPEN
  3853.                    BBS)
  3854.     NEWUSER.BBS - displays if this is the user's first call (and an OPEN
  3855.                    BBS)
  3856.     BIRTHDAY.BBS- displays if user's birthdate matches current date.
  3857.     ID#.BBS     - displays if user's ID# matches.
  3858.     QSEC#.BBS   - displays if user's security level matches # - once.
  3859.     SEC#.BBS    - displays if user's security level matches # - always.
  3860.     HELLO1.BBS  - displays if exists.
  3861.     HELLO2.BBS  - displays if exists.
  3862.     HELLO3.BBS  - displays if exists.
  3863.     BULLETIN.BBS- reported if changed since last logon, but not displayed.
  3864.     NEWSLTR.BBS - reported if changed since last logon, but not displayed.
  3865.     MAINMENU.BBS- if exists.
  3866.     .
  3867.     .
  3868.     QUOTES.BBS  - Ending quote from this file is presented at logoff. The
  3869.                   quote number sent is equal to:
  3870.                       (NUMBER OF TIMES CALLER CALLED) MOD (NUMBER OF QUOTES)
  3871.     GOODBYE.BBS - if exists. This would be a good place to place MILC
  3872.                   command @Wx (Wait x miliseconds) in order to give your
  3873.                   modem a chance to empty its buffer (send) to the remote
  3874.                   modem before finally disconnecting. @W2000 (wait 2
  3875.                   seconds) is usually sufficient.
  3876.  
  3877.     NOTE: Whenever Magnum can't open or display a file, it will send an
  3878.           informational message to the console (if you're snooping on
  3879.           someone):
  3880.  
  3881.             << SYSOP NOTE: File "filename" Not Found >>
  3882.  
  3883.           The remote user will never see this message, it's merely an
  3884.           informational message. You'll see these messages when you log on
  3885.           locally via the console as well. This message does not indicate
  3886.           an error, it merely indicates that the file didn't exist. For
  3887.           example, the HELLOx.BBS files are optional, and this message will
  3888.           display for each one of those files not found - this is normal.
  3889.  
  3890.  
  3891.  
  3892.  
  3893.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.                          This Page Intentionally Blank
  3927.  
  3928.  
  3929.  
  3930.     Running MAGNUM BBS                                             Page  3-1
  3931.     Starting MAGNUM BBS for the First Time
  3932.  
  3933.  
  3934.  
  3935.     Rather than go into  the detail about the  various .BBS and .SCR  files,
  3936.     you can use the ones supplied for now and tailor them to your own liking
  3937.     later on.   This way you  can start your  BBS now -  not after hours  of
  3938.     editing the .BBS files.
  3939.  
  3940.     Make sure you are in the subdirectory known as PGM_DIR.  If you've  used
  3941.     the  MAGINST.EXE  installation  program,  it  will  be d:\MAGNUM\PGM_DIR
  3942.     (where 'd:'  is the drive letter Magnum BBS was installed on).
  3943.  
  3944.     IMPORTANT: ---> Just a reminder that this document  assumes  the  4-node
  3945.                 version of Magnum,  in which case node 4  (ie: STARTUP.4 and
  3946.                 MBBSINIT.4)  comprise your local console  node.  If you have
  3947.                 the 2-node  version,  node 2 is your local console node.  If
  3948.                 you have the 9-node  version,  node 9 is  your local console
  3949.                 node. If you have the 33-node version, node 33 is your local
  3950.                 console node, etc!
  3951.  
  3952.                                For OS/2 1.x Users
  3953.  
  3954.     >>> FOR OS/2 1.x  <<< USERS:  If  you have a PS/2,  the COM02.SYS device
  3955.     driver  will  support  up  to  3  communications  ports,  otherwise  the
  3956.     COM01.SYS  device  driver  (for   non-PS/2  machines)  will  support   2
  3957.     communications ports.
  3958.  
  3959.                                For OS/2 2.x Users
  3960.  
  3961.     >>> FOR  OS/2 2.x  <<< USERS:   If  you have  a PS/2, the COM.SYS device
  3962.     driver will  support up  to 4  communications ports,  otherwise 3 ports.
  3963.     Note  that  IBM's  COM.SYS  driver  that  comes  with the OS is not very
  3964.     reliable,  and  can  cause   system  slowdown.    WE   HIGHLY  RECOMMEND
  3965.     DOWNLOADING 3RD-PARTY  DRIVERS FROM  OUR BBS.   AS  OF THIS WRITING, THE
  3966.     FILENAME  IS  SIOxxx.ZIP  (xxx  is  the  version  number)  AND IS IN OUR
  3967.     FILEBASE 0. USE THESE DRIVERS INSTEAD OF IBM'S!!  The latest filename of
  3968.     the SIOxxx.ZIP file is available in our BBS info when you log on.
  3969.  
  3970.                                  FOR ALL USERS:
  3971.  
  3972.     >>>  FOR  ALL  <<<  USERS:    If  you're using a Digiboard or Artic card
  3973.     (intelligent communications coprocessor cards), you must obtain the OS/2
  3974.     device driver for this card  from Digiboard, or from Quadron  (if you're
  3975.     using the Artic  Card).  These  cards can provide  support for up  to 32
  3976.     serial ports on one machine!
  3977.  
  3978.     NOTES: Prior to starting your BBS, you should modify your PATH statement
  3979.            (in your CONFIG.SYS file) to include your PGM_DIR, EXT_DIR, and
  3980.            RJE_DIR directory paths.
  3981.            It might also be a good idea for you to create a .CMD file to
  3982.            set these paths and to start MBBS.EXE automatically (from the
  3983.            system STARTUP.CMD file) in the event of a power failure - this
  3984.            way, the system will restart when the power returns.
  3985.            Magnum only opens nodes provided both the following criteria
  3986.            are met: 1) An MBBSINIT.x file exists for comport x, and 2) the
  3987.  
  3988.  
  3989.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  3990.  
  3991.  
  3992.  
  3993.     Page  3-2                                             Running MAGNUM BBS
  3994.                                       Starting MAGNUM BBS for the First Time
  3995.  
  3996.  
  3997.            MBBSINIT.x file was "compiled" from its STARTUP.x file with the
  3998.            ACTIVE parm set to Y.  If either of these cases is false, the
  3999.            node will not be used.  For example, if your STARTUP.2 file
  4000.            names COM2 as the DEVICENAME, but the ACTIVE parm is set to N
  4001.            (inactive), then COM2 will be available for other programs since
  4002.            Magnum will not be using it.
  4003.  
  4004.     At this point you should be in your PGM_DIR and you can start MAGNUM  by
  4005.     entering MBBS on the command line (you may have already done this  after
  4006.     the installation program finished).  Any MBBSINIT.x file found by MAGNUM
  4007.     with the ACTIVE parm set to Y will result in MAGNUM opening the  comport
  4008.     for that node and sending the initialization strings to the modem.   Any
  4009.     MBBSINIT file with the ACTIVE parm  set to N (and any MBBSINIT  file NOT
  4010.     found) will result in Magnum not using the comport for those  particular
  4011.     node(s) and will leave those comports free to be used by other programs.
  4012.     After initialization, you will do a local logon by typing the following:
  4013.  
  4014.             * LOGON
  4015.  
  4016.     Shortly after  you hit  the '*'  character, it  will appear  next to the
  4017.     "Command=>" prompt.  To start a  command, you either need to start  with
  4018.     the '*' character or the node number.   In the case of local logon,  you
  4019.     need to start with the '*' character.  Before you hit the '*' character,
  4020.     MAGNUM was checking the comports for  incoming calls.  Once you hit  the
  4021.     '*' or node number (1, 2,  etc) - MAGNUM immediately stops checking  for
  4022.     incoming calls  and accepts  what you  have to  type at  the "Command=>"
  4023.     prompt.  MAGNUM  always assumes that  if you're typing  something at the
  4024.     "Command=>" prompt  that it's  of very  high priority,  so it stops what
  4025.     it's doing (checking for incoming calls) until you've entered a  command
  4026.     and it  finishes processing  that command.   The  syntax of commands are
  4027.     always "X COMMAND" where X is an asterisk or digit - remember to  always
  4028.     leave one space between the X and the COMMAND.
  4029.  
  4030.     After  you've  entered   the  "*  LOGON"   command,  MAGNUM  will   call
  4031.     MSESSION.EXE to  run your  session.   You are  a new  user at this point
  4032.     since there is no entry in the user database for you (or anyone else for
  4033.     that matter).  Once you are prompted with the "LOGIN" prompt, enter your
  4034.     First Name exactly  the way it  appeared in your  STARTUP file for  your
  4035.     console node and press enter.  Do the same with middlename and  lastname
  4036.     - these must  match the config  file exactly!   Once it matches,  MAGNUM
  4037.     will welcome you as  Sysop and make you  go through the "new  user logon
  4038.     procedure".   If per  chance someone  has called  your BBS  prior to you
  4039.     logging on for the first time, they will get a "system not  initialized"
  4040.     message and be automatically logged off.  You (as sysop) must have an ID
  4041.     number of /0 (read as slash-zero).
  4042.  
  4043.     After you complete the new user logon procedure, you can now go into the
  4044.     sysop section  and modify  your parameters  to whatever  parms you wish.
  4045.     Once in the sysop  section, choose the User  area.  Your profile  should
  4046.     come up on the  screen.  Simply enter  any fieldname you wish  to change
  4047.     and hit enter -  MAGNUM will then prompt  you for the new  value of that
  4048.     field.  Everything else  in the user area  of the sysop section  is self
  4049.     explanatory but we'll go into more detail on that later on.
  4050.  
  4051.  
  4052.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4053.  
  4054.  
  4055.  
  4056.     Running MAGNUM BBS                                             Page  3-3
  4057.     Starting MAGNUM BBS for the First Time
  4058.  
  4059.  
  4060.  
  4061.     IMPORTANT: When online locally, the up and down arrow keys, and the PgUp
  4062.                and PgDn keys have special meaning. These keys are accepted
  4063.                at any prompt, and you should use extreme caution with these
  4064.                keys, as they change the priority of your local session.
  4065.                Anytime you're looged onto the local console, you can
  4066.                increase/decrease the priority of your local session with the
  4067.                following keys:
  4068.  
  4069.                      PgUp - Increases Priority Class by 1
  4070.                      PgDn - Decreases Priority Class by 1
  4071.                   UpArrow - Increases Priority Level (within a class) by 1
  4072.                 DownArrow - Decreases Priority Level (within a class) by 1
  4073.  
  4074.                These keys are recognized at any system prompt, but will not
  4075.                be recognized during message entry or chat modes.
  4076.                CAUTION: Setting your priority too high can cause other
  4077.                         online sessions to "freeze" and file xfers on other
  4078.                         sessions to "time out" (fail)! Try avoiding Class 3
  4079.                         altogether!
  4080.  
  4081.                There are 3 Priority Classes (1-3), the higher the class, the
  4082.                higher the priority. Within each class, there are 32 levels
  4083.                (0-31), the higher the level, the higher the priority within
  4084.                that class. Class 1 is "Idle Time", Class 2 is "Regular", and
  4085.                Class 3 is "Time Critical".  If you haven't supplied your own
  4086.                values to the PRTY_CLASS and PRTY_LEVEL keywords in your
  4087.                STARTUP.x file(s), the default is class 2, level 0 for the
  4088.                console node; class 2, level 10 for all other nodes.
  4089.                when running locally, OS/2 gives a boost to the foreground
  4090.                session. Keep in mind that since you'll be running your local
  4091.                logon in the foreground, the higher the priority you give to
  4092.                your session, the slower the remote sessions will become
  4093.                because OS/2 is granting more processing time to your local
  4094.                session.
  4095.                After pressing any of the above 4 keys, Magnum will display
  4096.                an informational message similar to the following:
  4097.                   Priority: Class=1, Level=31
  4098.                Although this informational display sort of "messes up" the
  4099.                nice system prompt from where you were at, the prompt is
  4100.                unaware of any changes and still expects normal input as
  4101.                though nothing had happened. If you press any of the 4 keys
  4102.                too many times in succession, the informational messages
  4103.                sent with each keypress can cause the original prompt to
  4104.                scroll off the screen, so remember where you left off! This
  4105.                will become clearer to you as you use these realtime priority
  4106.                setting keys.
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4116.  
  4117.  
  4118.  
  4119.     Page  3-4                                             Running MAGNUM BBS
  4120.                                                 Starting Your FILES Database
  4121.  
  4122.  
  4123.  
  4124.     Now that you're on the  system, it is ready for  use by others!  One  of
  4125.     the first things that a sysop usually  does is to add files to the  file
  4126.     section.  There are several ways to do this:
  4127.  
  4128.        1) Upload them via remote modem/computer;
  4129.        2) Manually place the files into the proper subdirectories you've set
  4130.           up and then use the Sysop section (file maintenance) to add them;
  4131.        3) If you're logged on locally, go into the [F]ile section and choose
  4132.           [U]pload - as long as you've logged on locally (from the Console),
  4133.           the actual file transfer (no matter which one you choose) will
  4134.           prompt you for the source of the file and will perform a local
  4135.           "copy" of the file. For example, if you had a file on diskette in
  4136.           drive A and wanted to get it into the files database, supply the
  4137.           name of the file (drive, path, etc) and Magnum will copy it from
  4138.           drive A to the proper subdirectory - this simulates an upload.
  4139.        4) If you are converting from another BBS system, and you know the
  4140.           record layout of its file database, you may be able to write a
  4141.           conversion program. We supply the layout of our databases in a
  4142.           file entitled MAGNUM.H located on your distribution diskette.
  4143.        5) Use the MAGFILE.EXE program (and optionally, the MAGDRIVE.EXE
  4144.           program) explained next.
  4145.  
  4146.     MAGNUM allows an optional message to be associated with each file.  This
  4147.     optional message can be up to 150  lines of text in length.  Other  than
  4148.     doing an upload from  a remote computer, MAGNUM  will let you create  or
  4149.     modify  any  message  for  a  file  through  the  file menu's "[C]hange"
  4150.     command.
  4151.  
  4152.     On uploads of files in .ZIP format (a popular compression method used by
  4153.     PKWare), you  can add  a customized  "zip file  comment" to all uploads.
  4154.     See Chapter 2 (EXTERNAL DIRECTORY) for more information.
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4179.  
  4180.  
  4181.  
  4182.     Running MAGNUM BBS                                             Page  3-5
  4183.     The MAGFILE.EXE Program (bulk file add)
  4184.  
  4185.  
  4186.                     The MAGFILE.EXE Program (bulk file add)
  4187.  
  4188.     NOTE: MAGFILE.EXE is included in the DEMO version of Magnum, however,
  4189.           128 file entries is the maximum the file database will hold in the
  4190.           demo release.  The commercial release has a maximum of over
  4191.           2 billion entries.
  4192.  
  4193.     By popular demand,  many Sysops have  asked for a  way to get  an entire
  4194.     directory  into  their  FILE  database(s)  without having to manually go
  4195.     through the motions of 'uploading'  the individual files.  We  bring you
  4196.     MAGFILE.EXE, which can do just that!   It can add entire directories  to
  4197.     any particular FileBase and  any file area of  any FileBase.  One  major
  4198.     use for this program is for when you need to deal with CD-ROM disks.  To
  4199.     add an entire  directory of files  you must first  create an ASCII  text
  4200.     file containing the list of the files in the directory you wish to  add.
  4201.     This can easily  be accomplished on  the OS/2 command  line with (assume
  4202.     G:\SOMEDIR\DIR1):
  4203.  
  4204.               DIR  G:\SOMEDIR\DIR1  >MAGDIR.LST
  4205.  
  4206.     the output of  the DIR command  has now been  written to the  MAGDIR.LST
  4207.     file.  Next,  edit the file,  stripping out any  directory names or  any
  4208.     other text lines which don't  contain valid filenames and sizes.   Next,
  4209.     you will need to place 7 keywords and parameters at the top of the  file
  4210.     (each on a line of its own). The 8th keyword (#PASSWORD:) and its
  4211.     parameter is optional.  By way of example:
  4212.  
  4213.         #INIT: D:\MAGNUM\PGM_DIR\MBBSINIT.1
  4214.         #BASE: 5
  4215.         #AREA: C
  4216.         #NAME: 41-52
  4217.         #SIZE: 18-26
  4218.         #DESC: ** From CD-ROM \SOURCE\C\SAMPLES
  4219.         #CDROM: F
  4220.         #PASSWORD:
  4221.     where
  4222.         #INIT: Defines the filespec to one of your MBBSINIT.x files.
  4223.         #BASE: Defines which FileBase to add these files to. If you do
  4224.                not have the Extended FileBase module, this parm should be 0.
  4225.         #AREA: Defines the FileArea (of FileBase) to assign these files to.
  4226.         #NAME: Defines column positions filenames are in (FAT FORMAT ONLY).
  4227.         #SIZE: Defines column positions in which the file sizes appear.
  4228.         #DESC: This will be the description line added to each of the files.
  4229.         #CDROM: Optional!  Defines the drive letter of CD-ROM drive
  4230.                 Do NOT supply a parameter if not using a CD-ROM drive!!
  4231.         #PASSWORD:
  4232.  
  4233.     Lines starting with the ! or ; characters are ignored (comment lines).
  4234.  
  4235.     Optionally, the #DESC:   parm can  also define column  positions in case
  4236.     you wish to  manually provide a  description for each  file.  Each  text
  4237.     line can be up to 200 characters in length.
  4238.  
  4239.  
  4240.  
  4241.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4242.  
  4243.  
  4244.  
  4245.     Page  3-6                                             Running MAGNUM BBS
  4246.                                      The MAGFILE.EXE Program (bulk file add)
  4247.  
  4248.  
  4249.     Save the changes, then run MAGFILE.EXE as follows:
  4250.  
  4251.         MAGFILE.EXE  MAGDIR.LST
  4252.  
  4253.     When the program completes successfully,  your files have been added  to
  4254.     the FileBase specified in the #BASE parameter.
  4255.  
  4256.     If you execute MAGFILE.EXE without any parameter (ie:  just  MAGFILE.EXE
  4257.     and  no  filename),  then  the  above  instructions  will appear on your
  4258.     screen.
  4259.  
  4260.     And don't forget to change your STARTUP.x file(s) for FileBase 0, or run
  4261.     your  FILEBASE.EXE  program  (for  extended  FileBases)  to   accurately
  4262.     indicate the  proper directory  paths for  the BASE  and AREA  parms you
  4263.     supplied above.
  4264.  
  4265.     Take note  that although  the 7  keywords and  their parameters  need to
  4266.     occupy  the  first  7  text  lines,  any of these keywords can re-appear
  4267.     anyplace else in  the file with  different parameters.   This will allow
  4268.     you to change the  file area or the  FileBase or desc fields  midstream.
  4269.     The changes take place  from that point on,  or until another change  is
  4270.     encountered.    Also  note  that  if  your  FileBase already exists (ie:
  4271.     FILE.DAT for example), the new  records will be appended (added)  to the
  4272.     database, otherwise the program will create the database.
  4273.  
  4274.     Note that if the #PASSWORD:  keyword is used, a blank parameter (absence
  4275.     of  a  parameter)  turns  off  password  protection.   The presence of a
  4276.     parameter  (a  password)  provides  passowrd  protection  to  ALL  files
  4277.     following this keyword until the end  of the file or until a  #PASSWORD:
  4278.     keyword  with  a  blank  parameter  is  encountered  to turn off pasword
  4279.     protection.    You  may  have  as  many  #PASSWORD:    keyword/parameter
  4280.     statements as you wish as long as each is on its own separate text line.
  4281.  
  4282.     NOTE: This program does NOT check your existing FileBase for duplicate
  4283.           names (ie: names already in the database which may also appear
  4284.           within your directory list).  Remember, duplicate filenames are
  4285.           fine as long as they're in different FileBases, but duplicate
  4286.           filenames in the same FileBase won't work as you might like them
  4287.           to.  Most file operations in Magnum work on the first matching
  4288.           file!  To get to a file with a duplicate name, use the #nnnn
  4289.           method (instead of the filename) when answering a filename prompt
  4290.           while online.
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4305.  
  4306.  
  4307.  
  4308.     Running MAGNUM BBS                                             Page  3-7
  4309.     The MAGDRIVE.EXE Program (CD-ROM Support)
  4310.  
  4311.  
  4312.     The MAGDRIVE.EXE Program (CD-ROM Support)
  4313.  
  4314.     NOTE: MAGDRIVE.EXE is included in the DEMO version of Magnum, however,
  4315.           128 file entries is the maximum the file database will hold in the
  4316.           demo release.  The commercial release has a maximum of over
  4317.           2 billion entries.
  4318.  
  4319.     This program is a simple program to  run.  Simply run it with the  drive
  4320.     letter of  your CD-ROM  drive as  the parameter  to this  program.   For
  4321.     example, if the drive  letter of (one of  your) CD-ROM drive is  F, then
  4322.     run the program as:
  4323.  
  4324.           MAGDRIVE  F
  4325.  
  4326.     The output of this program is placed  in a file d.DIR (where 'd' is  the
  4327.     drive letter  you specified)...  in the  above example,  the output file
  4328.     would be F.DIR
  4329.  
  4330.     The resultant d.DIR file  is an ASCII text  file of all of  the files in
  4331.     each and every  subdirectory of that  drive!  Edit  the d.DIR file  with
  4332.     your favorite  text editor  according to  the rules  of the  MAGFILE.EXE
  4333.     program  described  above,  but  DO  NOT  remove  any  of the statements
  4334.     starting with PATH[  in column 1.  The d.DIR has  already filled in  the
  4335.     #CDROM, #NAME, and #SIZE fields  for you.  When you've  finished editing
  4336.     the file, run it as the parameter to the MAGFILE.EXE program.  The #BASE
  4337.     and #AREA  parameters will  determine which  area of  which FileBase the
  4338.     CD-ROM files will be  stored in.  The  files will always remain  on your
  4339.     CD-ROM drive.  Unlike other BBS software, Magnum has no need for copying
  4340.     any files from your CD-ROM drive to someplace else in order to [A]ccess,
  4341.     [D]ownload,  or  perform  any  other  function.    Although there may be
  4342.     litterally thousands of subdirectories  on a particular CD-ROM  disk, as
  4343.     far as the online user logged  onto Magnum is concerned, they're all  in
  4344.     File Area x of FileBase y (where x was the parm to your AREA keyword  in
  4345.     the d.DIR file, and y was the parm to your BASE keyword in d.DIR).  Once
  4346.     you've  run  the  MAGFILE.EXE  program  against  the d.DIR file, you may
  4347.     delete  the  d.DIR  file,  all  information  is  now  in  Magnum's  File
  4348.     Database(s).
  4349.  
  4350.     Note that  there may  be many  duplicate filenames  on any  given CD-ROM
  4351.     disk.  A popular name which may occur in many subdirectories is READ.ME.
  4352.     If the online user specifies  a filename (to a filename  prompt), Magnum
  4353.     will always use the first matching entry.  To get to the particular file
  4354.     you have in mind, always use the #nnnnn method of file entry.
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.  
  4391.  
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.                          This Page Intentionally Blank
  4401.  
  4402.  
  4403.  
  4404.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-1
  4405.     Intro
  4406.  
  4407.  
  4408.     The end of  Chapter 2 lists  the order of  display files.   This chapter
  4409.     will explain  the embedded  MILC (Magnum  Interpreted Language Commands)
  4410.     which can  be a  part of  each of  your display  files.   MILC is a very
  4411.     powerful BBS language.  Before we go into that, it should be pointed out
  4412.     that anytime MAGNUM displays a file,  it first looks to see if  the user
  4413.     who's going to view  the file has their  color settings on.   If yes, it
  4414.     looks  for  whatever  filename  that's  about  to  be  displayed with an
  4415.     extension of  .SCR -  if it  finds it,  it displays  it -  otherwise, it
  4416.     displays the filename with an extension of .BBS instead.  Files with  an
  4417.     extension of .SCR are meant for color users only - you needn't have  any
  4418.     .SCR files to  have color, but  basically your .SCR  files are the  ones
  4419.     with the fancy ANSI escape sequences  in them to do things like  motion,
  4420.     cursor positioning, etc.
  4421.  
  4422.     Whether you use .SCR files or not, MAGNUM has provided a way for you  to
  4423.     use color in your  .BBS files and present  the color sequences to  those
  4424.     using color, or ignore them for those not using color - all  transparent
  4425.     to the user viewing the files.
  4426.  
  4427.     MAGNUM's  MILC  language  lets  you  take  advantage of advanced display
  4428.     techniques such  as mathematics,  string logic,  IF, inclusion  of other
  4429.     files  (with  options),  branch  to  anywhere  in the file, perform I/O,
  4430.     screen  control  (including  color),  give  the illusion of a customized
  4431.     display to the current user, and multitudes more!
  4432.  
  4433.                       Embedded MILC commands in Display Files
  4434.  
  4435.     Display files typically have extensions  of .BBS or .SCR and  display on
  4436.     the remote user's terminal.  The difference between .SCR and .BBS  files
  4437.     is .SCR files are searched for and displayed ONLY if the remote user has
  4438.     his color setting  set to YES.   In the  event that a  .SCR file is  not
  4439.     found, the corresponding .BBS file is displayed instead.  .BBS files may
  4440.     also  contain  color,  however,  the  color  is  via embedded MILC color
  4441.     commands  which  are  executed  only  if  the  remote user has his color
  4442.     setting set to YES, otherwise the embedded color commands are ignored.
  4443.  
  4444.     Display files  are not  limited to  .SCR or  .BBS files.   Every message
  4445.     (mail) entered on  your system in  the message section  can also contain
  4446.     MILC commands (refer to the page #'s defining the MILC_CMDS field in the
  4447.     index).  The MILC_CMDS field of each user's record defines which of  the
  4448.     MILC commands are available for them  to use in their messages.   In the
  4449.     case of  MILC commands  appearing in  messages, the  commands which  the
  4450.     originator  of  the  message  are  allowed  to  use (not the reader) are
  4451.     governed by the originator's MILC_CMDS field.
  4452.  
  4453.     NOTE that  the MILC  command character  (the character  that denotes the
  4454.     start of a MILC command) may  be (and usually is) different for  message
  4455.     text than any other display file.  The defaults (unless you change  them
  4456.     in your STARTUP.n  files) are '@'  for all displayable  files other than
  4457.     message text, and '^' for all message text.
  4458.  
  4459.     All  display  files  (except  PRELOG.bbs,  LOWBAUD.bbs,  CLOSED.bbs  and
  4460.     OPEN.bbs) may contain  embedded MILC commands.   Numerous categories  of
  4461.  
  4462.  
  4463.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4464.  
  4465.  
  4466.  
  4467.     Page  4-2               Customizing MAGNUM - Display Files/MILC Commands
  4468.                                                                        Intro
  4469.  
  4470.  
  4471.     commands exist, each beginning  with the command character  "@" (without
  4472.     the quotes).  The above named exceptions may contain MILC commands which
  4473.     do NOT reference any USER-specific  information because the user is  not
  4474.     fully logged on at  this time (ie:   Magnum has no way  of knowing their
  4475.     name or any other information about the user).
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.  
  4496.  
  4497.  
  4498.  
  4499.  
  4500.  
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4527.  
  4528.  
  4529.  
  4530.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-3
  4531.     Color Commands (@A)
  4532.  
  4533.  
  4534.                                     @A commands
  4535.  
  4536.     PURPOSE: Change colors for 'color users' -no effect on 'non-color users'
  4537.      FORMAT: @Ax
  4538.              Where 'x' is a 1 to 3 digit number ranging from 0 to 255.
  4539.  
  4540.     The @A commands are the ones  that change the color attributes.   Once a
  4541.     @A command is executed, that color will remain until the end of the file
  4542.     or  until  another  @A  command  is  executed.    The  following are the
  4543.     attribute values of 'x':
  4544.  
  4545.        @A0 - BLACK on BLACK         @A8  - GRAY on BLACK
  4546.        @A1 - BLUE on BLACK          @A9  - hi-intensity BLUE on BLACK
  4547.        @A2 - GREEN on BLACK         @A10 - hi-intensity GREEN on BLACK
  4548.        @A3 - CYAN on BLACK          @A11 - hi-intensity CYAN on BLACK
  4549.        @A4 - RED on BLACK           @A12 - hi-intensity RED on BLACK
  4550.        @A5 - MAGENTA on BLACK       @A13 - hi-intensity MAGENTA on BLACK
  4551.        @A6 - BROWN on BLACK         @A14 - bright YELLOW on BLACK
  4552.        @A7 - WHITE on BLACK         @A15 - hi-intensity WHITE on BLACK
  4553.  
  4554.        @A16  to @A31  - same as @A0 to @A15 but on BLUE background
  4555.        @A32  to @A47  - same as @A0 to @A15 but on GREEN background
  4556.        @A48  to @A63  - same as @A0 to @A15 but on CYAN background
  4557.        @A64  to @A79  - same as @A0 to @A15 but on RED background
  4558.        @A80  to @A95  - same as @A0 to @A15 but on MAGENTA background
  4559.        @A96  to @A111 - same as @A0 to @A15 but on BROWN background
  4560.        @A112 to @A127 - same as @A0 to @A15 but on WHITE background
  4561.  
  4562.        @A128 to @A255 - same as @A0 to @A127 but blinking
  4563.                         (simply add 128 to any of the above for blinking)
  4564.  
  4565.     Example:
  4566.  
  4567.        @A2 You are a @A10New User@A2 and we welcome you aboard!
  4568.  
  4569.           this would print: "You are a New User and we welcome you aboard!"
  4570.  
  4571.           where then entire sentence is displayed in green except for "New
  4572.           User" which is displayed in hi-intensity green. If the remote user
  4573.           had his color settings set to NO, then the sentence would appear
  4574.           normally and all in one color (whatever color his CRT displays,
  4575.           and the @Ax commands are automatically removed).
  4576.  
  4577.     Notes:
  4578.  
  4579.        As with all '@' commands, the @Ax commands will not be displayed, but
  4580.        their effects will be displayed.
  4581.  
  4582.        The @A commands will have no effect if the user viewing any text
  4583.        containing these commands has their 'color' selection turned off -
  4584.        they will simply be stripped from the text and not executed.
  4585.  
  4586.  
  4587.  
  4588.  
  4589.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4590.  
  4591.  
  4592.  
  4593.     Page  4-4               Customizing MAGNUM - Display Files/MILC Commands
  4594.                                                    Branch (IF) Commands (@B)
  4595.  
  4596.  
  4597.  
  4598.                                     @B Commands
  4599.  
  4600.     PURPOSE: Branch conditionally or unconditionally to another part of the
  4601.              file
  4602.      FORMAT: @Bx(EXP);
  4603.              where 'x' is the label number to branch to (0 to 99), and
  4604.              EXP is the expression to be evaluated. If EXP (expression) is
  4605.              TRUE, the branch is taken, otherwise display continues.
  4606.  
  4607.     The @B  command alters  the display  of a  file.   It can  jump forward,
  4608.     backward, or not at all depending on the expression in parenthesis.
  4609.  
  4610.     NOTE:  Please read about the @Z, @N, and @P commands and have a thorough
  4611.            understanding of them before attempting to read further.
  4612.  
  4613.     In order for a branch to take place, the following 2 conditions must  be
  4614.     met:
  4615.  
  4616.         1) The expression must be TRUE
  4617.         2) The label must exist somewhere in the current file
  4618.  
  4619.     Let's say you have defined a label  somewhere in your file as label #  5
  4620.     (an  embedded  @P5  somewhere  in  the  file).   The label could be in a
  4621.     previous  part  of  the  file  or  in  a  forward  part of the file (ie:
  4622.     anyplace).
  4623.  
  4624.     Since  this  is  best  learned  by  examples,  lets  start with a forced
  4625.     (unconditional) branch:
  4626.  
  4627.          @B5(0=0);                  [ NOTE: @B5; is identical to @B5(0=0); ]
  4628.  
  4629.     This would  cause an  unconditional branch  to label  5 (@P5)  since the
  4630.     expression  (0=0)  is  true.    The  "="  sign means to compare the left
  4631.     parameter with the right parameter and if they are equal, the result  is
  4632.     true.  If the expression were  (0=1) instead, then no branch would  take
  4633.     place since  0 does  not equal  1. This  is the  simplest of  the branch
  4634.     instruction.  The valid comparators are:
  4635.  
  4636.              =    equal to
  4637.              >    greater than
  4638.              <    less than
  4639.              >=   greater than or equal to
  4640.              <=   less than or equal to
  4641.              !=   not equal to
  4642.              ~    If string2 is contained within string1
  4643.              !~   If string2 NOT contained within string1
  4644.  
  4645.     Using  numeric  variables  (see  the  @N  command), let's try a few more
  4646.     examples:
  4647.  
  4648.              @B5(N2=16);
  4649.              @B5(N2!=N12);
  4650.  
  4651.  
  4652.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4653.  
  4654.  
  4655.  
  4656.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-5
  4657.     Branch (IF) Commands (@B)
  4658.  
  4659.  
  4660.              @B5(N4<N2);
  4661.  
  4662.     Note  in  all  three  examples  the  absence  of any spaces.  All branch
  4663.     commands MUST BE TERMINATED WITH THE ';' character (semicolon)!
  4664.  
  4665.     Using  string  variables  (see  the  @Z  command),  let's try a few more
  4666.     examples:
  4667.  
  4668.              @B5(Z3=Z4);
  4669.              @B6(Z2!="John");
  4670.  
  4671.     Note the use of Quotes to define a "hard-coded" string (as opposed to  a
  4672.     variable string).  The  "hard-coded" string may contain  embedded spaces
  4673.     within the surrounding quotes.   NOTE:  string comparisons are  NOT case
  4674.     sensitive.  This means that "John" is the same as "joHN".
  4675.  
  4676.     Now for a working example:
  4677.  
  4678.            @N1=0;
  4679.            This line is being displayed
  4680.            @P5 This line will be displayed twice @N1=(N1+1); @B5(N1=1);
  4681.            And now on to the next line
  4682.  
  4683.     Evaluating the above, the first @  command is @N1=0; which assigns 0  to
  4684.     the variable N1.  The text "This line is being displayed" is  displayed.
  4685.     Next, a label (@P5) is defined and the text "This line will be displayed
  4686.     twice"  is  displayed.    After  that,  an  arithmetic  expression  that
  4687.     increments variable N1 by  1 is encountered.   N1 is increased by  1 and
  4688.     now contains the value 1. The  branch command says to branch to  label 5
  4689.     (@P5) if N1  is equal to  1. Since the  expression is TRUE,  a branch is
  4690.     taken to @P5 and "This line will be displayed twice" is displayed again.
  4691.     N1 is again incremented  by 1, leaving the  value 2 in variable  N1 as a
  4692.     result.  The branch statement becomes  false (N1 is now equal to  2, not
  4693.     1) and the display continues with "And now on to the next line".
  4694.  
  4695.     To check if a string is contained within another string, lets suppose
  4696.     that the variable @Z1 contained "HAPPY NEW YEAR". If you wanted to check
  4697.     to see if "EAR" were contained within the string, you could do it as
  4698.     follows:
  4699.  
  4700.              @B5(Z1~"EAR");   EAR is not in @Z1; @P5
  4701.  
  4702.     What this would do is check if string2 ("EAR") were contained in
  4703.     string1. If the result is TRUE, a branch would be taken to label @P5,
  4704.     otherwise no branch would be taken and processing would continue with
  4705.     displaying "EAR is not in HAPPY NEW YEAR". However, in this case, the
  4706.     comparision is TRUE and the branch would be taken to @P5, skipping over
  4707.     the display of "EAR is not in HAPPY NEW YEAR".
  4708.  
  4709.     NOTE: A forced (conditional) branch does not need the (EXP) part of the
  4710.           statement. For example, @B5; and @B5(0=0); are identical.
  4711.  
  4712.  
  4713.  
  4714.  
  4715.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4716.  
  4717.  
  4718.  
  4719.     Page  4-6               Customizing MAGNUM - Display Files/MILC Commands
  4720.                                                 Screen Control Commands (@C)
  4721.  
  4722.  
  4723.  
  4724.                                     @C Commands
  4725.  
  4726.     PURPOSE: Controls the screen/display
  4727.      FORMAT: @Cx
  4728.              where x is a numeric parm representing the control function
  4729.  
  4730.     The @C command controls the screen or display of a file.  The parameters
  4731.     are 0 through 11 as follows:
  4732.  
  4733.              @C0  - NONSTOP.  This is the same effect as the remote user
  4734.                               answering 'N' to the "-- MORE -- [C]ont,
  4735.                               [S]top, [N]onstop" prompt.
  4736.  
  4737.              @C1  - STOP, WAIT FOR KEYPRESS. This command stops the display
  4738.                     and waits for the remote user to strike a key. Note that
  4739.                     no prompt is given - you should supply your own prompt
  4740.                     to let the remote user know that you are waiting for
  4741.                     them to press a key. (ie: "Press any key ...@C1")
  4742.  
  4743.              @C2  - RESUME NORMAL DISPLAY. This command negates the @C0
  4744.                     command - it resumes normal prompting ("-- MORE --")
  4745.                     when a full screen is displayed (and the remote user
  4746.                     has their "MORE" prompts turned on).
  4747.  
  4748.              @C3  - BEGIN SKIP. This command is kind of like a comment that
  4749.                     never gets shown. Everything following this command is
  4750.                     skipped until a @C4 command is encountered.
  4751.  
  4752.              @C4  - END SKIP. This command negates the @C3 command. Normal
  4753.                     Display and processing of text and commands resume when
  4754.                     this command is encountered.
  4755.  
  4756.              @C5  - IGNORE COMMANDS. Similar to the BEGIN SKIP (@C3)
  4757.                     command, this command turns off, or disables command
  4758.                     processing. All commands that follow from this point on
  4759.                     will be treated as text instead of commands (and thus
  4760.                     displayed instead of processed). The @C6 command is the
  4761.                     exception, which negates this command.
  4762.  
  4763.              @C6  - PROCESS COMMANDS. Negates @C5 command. When @C6 command
  4764.                     is encountered, normal command processing will resume.
  4765.  
  4766.              @C7x - CHANGE COMMAND CHARACTER. This is the only command in
  4767.                     the @C group of commands that takes another parameter.
  4768.                     That parameter is a single character which tells the
  4769.                     file display routines to use a different character to
  4770.                     recognize commands with. For example, the command @C7%
  4771.                     tells the file display functions that the '%' character
  4772.                     is now the command character, not the '@' character. So,
  4773.                     @C7^ makes the '^' character the command character from
  4774.                     that point on, until another ^C7 command is issued to
  4775.                     change it to another character. Use extreme caution in
  4776.  
  4777.  
  4778.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4779.  
  4780.  
  4781.  
  4782.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-7
  4783.     Screen Control Commands (@C)
  4784.  
  4785.  
  4786.                     selecting a command character - that character should
  4787.                     only be used for commands and not text.
  4788.  
  4789.              @C8  - RESET LINECOUNT. This command resets the line counter
  4790.                     used for the -More- prompt. This comes in handy after
  4791.                     'including' a file or branching to somewhere in the file
  4792.                     where this would become necessary.
  4793.  
  4794.              @C9  - PRESS ENTER. This command prompts the remote user to
  4795.                     press their ENTER (or C/R) key. The file display stops,
  4796.                     the "PRESS ENTER ..." prompt appears, and the function
  4797.                     waits until the remote user presses ENTER.
  4798.  
  4799.              @C10 - BREAK OFF. This command turns off the ability to break
  4800.                     or stop display of a file with the <Ctrl-X> or the space
  4801.                     bar. Although this command can appear anywhere in the
  4802.                     file, a user can still stop the display if s/he does so
  4803.                     before this command is processed. However, if @C10 is
  4804.                     contained as the first 4 characters of the file, the
  4805.                     command is guaranteed to take affect because Magnum will
  4806.                     disallow a break during the first 4 characters of a file
  4807.                     for this purpose.
  4808.  
  4809.              @C11 - BREAK ON. This command negates the @C10 command.
  4810.  
  4811.              @C12 - Ignore all text - process commands only. Ideal for large
  4812.                     blocks of commands where CR/LF and spaces are not
  4813.                     intended to display. Stays in this state until @C13
  4814.                     encountered.
  4815.                     ** CAUTION: Be careful when using @B (branch) commands
  4816.                                 without issuing a @C13 to turn text
  4817.                                 display/processing back on again.
  4818.  
  4819.              @C13 - Negate @C12.
  4820.  
  4821.              @C14 - Turn off HIGHLIGHT. Ordinarily, reader display of @Z,
  4822.                     @N, @O, and @U substitutions are highlighted. The @C14
  4823.                     command turns off this highlighting. NOTE: highlight is
  4824.                     only active when the remote user's color setting is Y.
  4825.  
  4826.              @C15 - Negate @C14.
  4827.  
  4828.              @C16 - Terminate display of current file.
  4829.  
  4830.              @C17 - Log the user off! (be careful with this one!) Emulates
  4831.                     a dropped carrier (disconnect). Sysop/Cosysop use only!
  4832.  
  4833.              @C18 - Clears the screen. If the user's color settings are set
  4834.                     to YES, an ANSI "clear screen" escape sequence is sent,
  4835.                     otherwise a FormFeed character (Ctrl-L) is sent.
  4836.  
  4837.              @C19 - forces an internal result code of FALSE (ie: file not
  4838.                     found or file not displayed). An example of the use for
  4839.  
  4840.  
  4841.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4842.  
  4843.  
  4844.  
  4845.     Page  4-8               Customizing MAGNUM - Display Files/MILC Commands
  4846.                                                 Screen Control Commands (@C)
  4847.  
  4848.  
  4849.                     this command would be the following: You wish to display
  4850.                     something using your external menu(s) (ie: FILEMENU.BBS,
  4851.                     MSGMENU.BBS, etc), but also want Magnum to dynamically
  4852.                     generate the menu. Magnum only generates an
  4853.                     internally-built dynamic menu if the xxxxMENU.BBS (or
  4854.                     xxxxMENU.SCR) file doesn't exist. Within this file, you
  4855.                     can now issue the @C19 command, which will generate an
  4856.                     internal result code indicating that the file was not
  4857.                     found - even though the file is displayed. This
  4858.                     essentially "fools" the menu routines into thinking that
  4859.                     the menu file was not found and will therefore generate
  4860.                     the internal menu. This MILC command is ignored if it
  4861.                     appears within a message file. This MILC command does
  4862.                     not terminate the display of a file, it merely sets the
  4863.                     internal result code.
  4864.  
  4865.                     NOTE: The external menu file is only displayed upon
  4866.                           entrance to the menu. After that, the internal
  4867.                           menu will be dynamically generated each time the
  4868.                           menu needs re-generation. If the menu is exited,
  4869.                           then returned to (ie: if in FILE menu, then the
  4870.                           menu will be re-generated if they choose [Q]uit,
  4871.                           and then re-enter the FILE section anytime
  4872.                           afterward).
  4873.  
  4874.              @C20 - Make the length of the string variable in @Z0 equal to
  4875.                     the length of the variable in @N0. The following gets
  4876.                     the user's first name into variable @z0, makes the
  4877.                     length exactly 10 characters, then displays it:
  4878.  
  4879.                      @z0=u3; @n0=10; @c20;
  4880.                      @z0;
  4881.  
  4882.              @C21 - Disable Menu Prompts.  For those who are doing their own
  4883.                     prompting via external menus and stacking (@Sx) menu
  4884.                     commands.  By disabling the menu prompts with this new
  4885.                     MILC command, the dynamically generated menu prompt
  4886.                     (which is displayed after displaying the external menu)
  4887.                     will be supressed until a @C22 command is issued.  This
  4888.                     command applies to ALL menus (ie: main, rje, msg, file,
  4889.                     sysop) but not to submenus (such as the 'read messages
  4890.                     submenu').
  4891.                     NOTE: Disabling menu prompts also disables the CR/LF
  4892.                           sent after displaying an external menu, as well as
  4893.                           the date/time and minutes remaining information
  4894.                           normally displayed prior to the prompt.
  4895.  
  4896.              @C22 - Enable Menu Prompts.  Negates @C21.
  4897.  
  4898.              @C23 - Same as @C21 but only ONCE after this command is issued.
  4899.                     Unlike the @C21 which disables menu prompts until a @C22
  4900.                     is issued, this command will disable the next menu
  4901.                     prompt and reactivate prompts afterward.
  4902.  
  4903.  
  4904.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4905.  
  4906.  
  4907.  
  4908.     Customizing MAGNUM - Display Files/MILC Commands               Page  4-9
  4909.     Screen Control Commands (@C)
  4910.  
  4911.  
  4912.  
  4913.              @C24 - Store current screen (actually the last 2,000 bytes
  4914.                     displayed) Can hold up to 999 screens, thus can be
  4915.                     called up to 999 times before calling @C25 (restore).
  4916.                     If the number of calls exceeds 999 without doing a
  4917.                     restore the function simply returns with no action and
  4918.                     no error message or warning.
  4919.  
  4920.              @C25 - Restore last screen (actually the last 2,000 bytes
  4921.                     stored).  If called more than the number of times @C24
  4922.                     (store) has been called, the function simply returns
  4923.                     with no action and no error message or warning.
  4924.  
  4925.              @C26 - Disable Mandatory Response for  @Zn input.  This will
  4926.                     enable a user to simply press ENTER without having to
  4927.                     enter a mandatory response to any input requested by
  4928.                     @Zn(xx); or by @Zn('abc');
  4929.                     Note: If the user presses ENTER with no other response,
  4930.                           or enters a blank (one or more spaces with no
  4931.                           other chars) response, then the original contents
  4932.                           of @Zn will be retained.  This way, you may
  4933.                           provide for a default response.  Note that @C26
  4934.                           applies only to string input (ie: @Zn(xx); and
  4935.                           @Zn('abc'); but NOT to numeric @Nn input
  4936.                           requests).  In the case of @Zn('abc'); where a
  4937.                           single character input response is requested (ie:
  4938.                           a, b or c), then make certain that if you use
  4939.                           @C26, that you place a valid input response in @Zn
  4940.                           prior to asking for input - if you don't, the
  4941.                           default response will be the first char of the
  4942.                           'abc' string (in this case, A).
  4943.  
  4944.              @C27 - Enable Mandatory Response for @Z input (the default).
  4945.                     Negates @C26.  Note that C26/C27 are system-wide and NOT
  4946.                     initialized with each new display file (ie: if you
  4947.                     specify @C26 in ANY display file, then ALL @Zn input
  4948.                     commands will assume non-mandatory responses!  @C27 is
  4949.                     the default at session startup.
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  4968.  
  4969.  
  4970.  
  4971.     Page  4-10              Customizing MAGNUM - Display Files/MILC Commands
  4972.                                                Date Conversion Function (@D)
  4973.  
  4974.  
  4975.                                    @D Command
  4976.  
  4977.     PURPOSE: Converts a partial date to a 10-character date string
  4978.              (MM/DD/YYYY or DD.MM.YYYY depending on user's date format).
  4979.     FORMAT:  @Dx
  4980.  
  4981.     When prompting a user for a date, they may enter a date in a format such
  4982.     as M/D, MM/D, M/DD, MM/DD, MM/DD/Y, MM/DD/YY, etc (or it's European
  4983.     equivalent entry). The @Dx command simply converts a partial date to a
  4984.     10-character date string. The 'x' tells the @D command which @Zx
  4985.     variable holds the partial date string. In the following example:
  4986.  
  4987.          Enter Starting Date => @Z5(10); @D5
  4988.  
  4989.     The @Z5(10); prompts the user for a string of up to 10 characters which
  4990.     will be placed in variable @Z5. The @D5 command converts the date in
  4991.     variable @Z5 to a 10-character date string. For example, if the user
  4992.     entered "3/1" in response to the date prompt, the @D5 statement would
  4993.     convert the string to "03/01/1990" (or whatever the CURRENT YEAR happens
  4994.     to be). If the user has specified European date formats in their
  4995.     Environment settings, the date would be converted to 01.03.1990 instead.
  4996.  
  4997.     In the event a user enters garbage in response to the prompt (ie: an
  4998.     invalid date or invalid partial date), the @Dx function will convert the
  4999.     string in @Zx to "01/01/1980" (or 01.01.1980).
  5000.  
  5001.     Users can enter dates in either MM/DD/YYYY or DD.MM.YYYY formats. If
  5002.     the conversion routine called by @Dx sees the '/' character, it
  5003.     assumes the date has been entered in US date format, otherwise if it
  5004.     sees the '.' character, it assumes the date has been entered in
  5005.     European date format. If the user entered the date in US format but
  5006.     had their default settings to European, the date in @Zx would also
  5007.     be converted to European date format. Likewise, if the user entered
  5008.     the date in European format but had their default settings to US, the
  5009.     date in @Zx would also be converted to US date format.
  5010.  
  5011.     As a result, any external programs you write which accept a
  5012.     10-character date as input, must also be able to accept the date in
  5013.     either US or European format. Conversion from one format to another
  5014.     is not very difficult at all if the date is always supplied as a
  5015.     10-character string. For example, in the 'C' language, the following
  5016.     functions would perform your conversions:
  5017.  
  5018.         date2US(datestring)  /* Converts from European or US date */
  5019.         char *datestring;    /* format to US */
  5020.            {
  5021.            char c;
  5022.            if(datestring[2]=='/') /* Already in US format - return */
  5023.               return;
  5024.            if(datestring[2]=='.') /* If in European format, do conversion */
  5025.               {
  5026.               c=datestring[0];
  5027.               datestring[0]=datestring[3];
  5028.  
  5029.  
  5030.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5031.  
  5032.  
  5033.  
  5034.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-11
  5035.     Date Conversion Function (@D)
  5036.  
  5037.  
  5038.               datestring[3]=c;
  5039.               c=datestring[1];
  5040.               datestring[1]=datestring[4];
  5041.               datestring[4]=c;
  5042.               datestring[2]=datestring[5]='/';
  5043.               }
  5044.            }
  5045.  
  5046.         date2European(datestring) /* Converts European or US to European */
  5047.         char *datestring;
  5048.            {
  5049.            char c;
  5050.            if(datestring[2]=='.') /* Already in European format - return */
  5051.               return;
  5052.            if(datestring[2]=='/') /* If in US format, do conversion */
  5053.               {
  5054.               c=datestring[0];
  5055.               datestring[0]=datestring[3];
  5056.               datestring[3]=c;
  5057.               c=datestring[1];
  5058.               datestring[1]=datestring[4];
  5059.               datestring[4]=c;
  5060.               datestring[2]=datestring[5]='.';
  5061.               }
  5062.            }
  5063.  
  5064.     These routines are only examples, but are very fast because there's
  5065.     no function calls made and all we're doing is manipulating characters!
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5094.  
  5095.  
  5096.  
  5097.     Page  4-12              Customizing MAGNUM - Display Files/MILC Commands
  5098.                             External and RJE Program Execution Commands (@E)
  5099.  
  5100.  
  5101.                                    @E Command
  5102.  
  5103.     PURPOSE: Starts an External (child process or door), or RJE
  5104.              (independent process) program.
  5105.      FORMAT: @Ex
  5106.  
  5107.                                       @E0:
  5108.  
  5109.     @E0 - Executes an external program (without using the [D]oor menu).
  5110.           Works the same as [D]oors (child processes) - the external
  5111.           process being called must be in the EXTernal DIRectory. The
  5112.           variable @Z0 holds the program name, @Z1 holds any parameters
  5113.           needed by the program, @N0 tells how the pgm's I/O is to be
  5114.           handled. When the external program finishes executing, the
  5115.           result code of the program will be placed in MILC variable @N1.
  5116.           See CHILDREN.BBS in the "Creating Subdirectories" portion of
  5117.           the user's manual. See Chapter 2, CHILDREN.BBS of EXTERNAL
  5118.           DIRectory for more information.
  5119.  
  5120.           CAUTION: DO NOT ALLOW YOUR USERS ACCESS TO THIS COMMAND!! MAKE
  5121.                    SURE IT DOES NOT APPEAR IN THE "MILC_CMDS=" OF ANY
  5122.                    USER'S RECORD!! IF A USER HAS ACCESS TO THIS COMMAND,
  5123.                    THEY COULD TAKE CONTROL OF YOUR ENTIRE SYSTEM AND DO
  5124.                    ANYTHING THEY WANT!!
  5125.  
  5126.                                       @E1:
  5127.  
  5128.     @E1 - Similar to MILC variable @E0, except the process is started as
  5129.           an RJE task (detached and running in the background), and is
  5130.           expected to be found in your RJE DIRectory. The process must NOT
  5131.           read from stdin, or write to stdout or stderr (it actually
  5132.           can write to stdout/stderr but output will be lost!), and must
  5133.           NOT require any keyboard or mouse input or screen output
  5134.           (redirection of stdin, stdout and stderr is ok), otherwise all
  5135.           I/O should be to and from FILES only, not devices! If the print
  5136.           spooler is enabled, this is probably ok. As with the MILC @E0
  5137.           command, the required @Z0 and @Z1 parameters are the same, but
  5138.           the @N0 and @N1 parameters are different:
  5139.  
  5140.         @N0 should contain the Priority CLASS and LEVEL of the process:
  5141.  
  5142.           NO CHANGE IN CLASS:
  5143.  
  5144.               1 =  lowest priority level of the class
  5145.              31 = highest priority level of the class
  5146.  
  5147.           CLASS 1 (Idle Time)
  5148.  
  5149.             100 =  lowest priority level of "Idle" Class (class 1, level  0)
  5150.             131 = highest priority level of "Idle" Class (class 1, level 31)
  5151.  
  5152.           CLASS 2 (Regular)
  5153.  
  5154.  
  5155.  
  5156.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5157.  
  5158.  
  5159.  
  5160.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-13
  5161.     External and RJE Program Execution Commands (@E)
  5162.  
  5163.  
  5164.             200 =  lowest priority lvl of "Regular" Class (class 2, lvl  0)
  5165.             231 = highest priority lvl of "Regular" Class (class 2, lvl 31)
  5166.  
  5167.           CLASS 3 (Time Critical)
  5168.  
  5169.             300 =  lowest priority lvl of "Critical" Class (class 3, lvl  0)
  5170.             331 = highest priority lvl of "Critical" Class (class 3, lvl 31)
  5171.  
  5172.          For example, if you want your RJE program to run in the "Idle Time"
  5173.          class, with a priority level of 15 (the middle of the class), you
  5174.          would assign the value of 115 to variable @N1 as follows:
  5175.  
  5176.             @N0=115;
  5177.  
  5178.          If you don't want to bother with setting priority levels, simply
  5179.          assign an invalid number to variable @N0 (ie: @N0=99;), which will
  5180.          force Magnum to assume a default of 125 (class 1, level 25).
  5181.          Valid numbers are: 1 to 31, 100 to 131, 200 to 231, and 300 to 331.
  5182.  
  5183.          The contents of MILC variable @N1 tells Magnum whether to notify
  5184.          the user in the event the RJE job completes while they're still
  5185.          online. If @N1 is zero, no notification will take place, otherwise
  5186.          if @N1 is 1 (nonzero), Magnum will notify the user of the completed
  5187.          RJE job in the event that the job completes before the user's
  5188.          session is over.
  5189.  
  5190.          Once the process has been started, the values in MILC variables @Z1
  5191.          and @N1 will be overwritten with information about the RJE process.
  5192.          Variable @Z1 will contain a 10-character string which is the name
  5193.          Magnum assigns to the job, and variable @N1 will contain the
  5194.          process's PID (Process Identification as used by OS/2). If the PID
  5195.          (@N1) contains the value of 0 after starting the job, then this
  5196.          indicates that the job was unable to be started, otherwise if
  5197.          non-zero, the job started successfully.
  5198.  
  5199.                            NOTES ABOUT @Ex COMMANDS:
  5200.  
  5201.          In many cases, you'll want (or need) to run a .CMD file instead of
  5202.          a single .EXE program. In order to run .CMD files, you need to
  5203.          specify CMD.EXE as the program to run, and give it a parameter of
  5204.          "/c xxxxxxxx.cmd" (where 'xxxxxxxx' is the name of your .CMD file.
  5205.          For example, if you wanted to run a .CMD file called RUN.CMD, your
  5206.          @Zx MILC commands would be set up as follows:
  5207.  
  5208.               @z0="cmd.exe"; @z1="/c run.cmd";
  5209.  
  5210.          Of course, you could also have supplied parameters to pass to the
  5211.          .CMD file as well:
  5212.  
  5213.               @z0="cmd.exe"; @z1="/c run.cmd parm1 parm2";
  5214.  
  5215.          It's important to remember the "/c " as the first thing in the @z1
  5216.          string because it tells OS/2 to terminate the "cmd.exe" program
  5217.  
  5218.  
  5219.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5220.  
  5221.  
  5222.  
  5223.     Page  4-14              Customizing MAGNUM - Display Files/MILC Commands
  5224.                             External and RJE Program Execution Commands (@E)
  5225.  
  5226.  
  5227.          when your .CMD file finishes executing.
  5228.  
  5229.          *** IMPORTANT: IF YOU DON'T SUPPLY THE "/c " PARAMETER AS THE FIRST
  5230.                         THING IN @Z1 WHEN "CMD.EXE" IS THE PROGRAM IN @Z0,
  5231.                         THEN CMD.EXE WILL NOT END!!! THE REMOTE USER WILL
  5232.                         HAVE THE CMD.EXE COMMAND PROMPT (AND YOUR ENTIRE
  5233.                         SYSTEM) AVAILABLE FOR THEM TO DO WHATEVER THEY WANT!
  5234.  
  5235.  
  5236.           CAUTION: DO NOT ALLOW YOUR USERS ACCESS TO @Ex COMMANDS!! MAKE
  5237.                    SURE  E  DOES NOT APPEAR IN THE "MILC_CMDS=" OF ANY
  5238.                    USER'S RECORD!! IF A USER HAS ACCESS TO THIS COMMAND,
  5239.                    THEY COULD TAKE CONTROL OF YOUR ENTIRE SYSTEM AND DO
  5240.                    ANYTHING THEY WANT!!
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5283.  
  5284.  
  5285.  
  5286.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-15
  5287.     Miscellaneous @E commands
  5288.  
  5289.  
  5290.                            Miscellaneous @E commands
  5291.  
  5292.     PURPOSE: To perform certain functions which should only be available
  5293.              to the Sysop.
  5294.      FORMAT: @Ex
  5295.  
  5296.       @E2  - Send File. This command transmits a file that is NOT in the
  5297.              file database to the remote caller. @Z0 holds the filename.
  5298.              Upon return of the transmission, variable @N0 holds the result
  5299.              (1=success, 0=failure). If the user does not have a default
  5300.              file xfer protocol chosen, s/he will be prompted for one. The
  5301.              function also determines whether the caller is on remotely,
  5302.              locally or via pipe module and acts accordingly. This function
  5303.              provides a means of file xfer unrelated to the BBS.
  5304.              No upload/download ratios are checked, remaining time is not
  5305.              checked, the file is not counted as a download, etc.
  5306.              Example:
  5307.                          @Z0="d:\magnum\somefile.zip";
  5308.                          @E2
  5309.                          @B1(N0=1);
  5310.                          File Transmission Unsuccessful!
  5311.                          @C16
  5312.                          @P1 File Transmission Successful!
  5313.  
  5314.              The Sysop can use this within a message to point to a file to
  5315.              download by the reader (without having to attach the file to
  5316.              a message).
  5317.  
  5318.              NOTE: @E2 command is NOT available in the DEMO configuration.
  5319.  
  5320.       @E3  - Receive File. This command receives a file from the remote
  5321.              caller and does NOT update the file database. @Z0 holds the
  5322.              filename. Upon return of the function, variable @N0 holds the
  5323.              result (1=success, 0=failure). If the user does not have a
  5324.              default file xfer protocol chosen, s/he will be prompted for
  5325.              one. Note that if the file exists, the function will delete the
  5326.              file prior to receiving it. The function also deletes the file
  5327.              if the file transfer fails. The function also determines
  5328.              whether the caller is on remotely, locally or via pipe module
  5329.              and acts accordingly. This function provides a means of file
  5330.              xfer unrelated to the BBS. No upload credit is given, remaining
  5331.              time is not checked, the file is not integrity checked,
  5332.              upload/download ratio not adjusted, etc.
  5333.              Example:
  5334.                          @Z0="d:\magnum\somefile.zip";
  5335.                          @E3
  5336.                          @B1(N0=1);
  5337.                          File Reception Unsuccessful!
  5338.                          @C16
  5339.                          @P1 File Received Successfully!
  5340.  
  5341.              NOTE: @E3 command is NOT available in the DEMO configuration.
  5342.  
  5343.  
  5344.  
  5345.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5346.  
  5347.  
  5348.  
  5349.     Page  4-16              Customizing MAGNUM - Display Files/MILC Commands
  5350.                                                    Miscellaneous @E commands
  5351.  
  5352.  
  5353.       @E4  - Places name of "response file" in @Z0.  The "response file" is
  5354.              the name of the file that any @Zx(""); or @Nx(""); requests
  5355.              will  be written to.
  5356.  
  5357.       @E5  - Turn off "response file" header.   This supresses the header
  5358.              Magnum writes to the "response file" before logging responses
  5359.              (ie: user's name, id, phone number, date & time,  etc).
  5360.              NOTEs: - This works only on the currently-displaying file!
  5361.                       If you "include" a file, you must also issue this
  5362.                       command from the included file if you want
  5363.                       supression.
  5364.                     - This command should be issued prior to writing (ie:
  5365.                       prior to issuing any @Zx(""); or @Nx(""); commands.
  5366.  
  5367.       @E6  - Override "response filename" with that of the one in MILC
  5368.              variable @Z0.  For example, to create a DOOR.SYS file, you
  5369.              would assign the name of the file in @Z0 (example:
  5370.              @Z0="d:\magnum\ext_dir\door.sys";), then you would issue the
  5371.              @E6 command.  Make certain to also issue the @E5 command to
  5372.              alert Magnum to NOT write the response file header!
  5373.  
  5374.       @E7  - Open the (ASCII) file in @Z0 for Reading.  Upon successful
  5375.              open, @N0 will contain 0, otherwise an error number.  If you
  5376.              open another file with @E7 prior to closing an existing opened
  5377.              file, it will close the existing file first.
  5378.  
  5379.       @E8  - Read one text line (up to 100 chars) of the file opened with
  5380.              @E7 (above) into @Z0.  The number in @N0 will indicate how many
  5381.              bytes were read.  If 0, the file is automatically closed.
  5382.              Magnum will insure that each line read has a CR/LF pair at the
  5383.              end, therefore any blank lines read will have at least 2 bytes.
  5384.              The purpose for the @E7, @E8 and @E9 commands is to have the
  5385.              capaibility of reading an ASCII text file and scanning for a
  5386.              match on a certain keyword with the @Bx(@Z0~"keyword");
  5387.              statement.  As a rough example, here's a small example file
  5388.              which only displays those text lines which contain the word
  5389.              "execute".
  5390.  
  5391.                    @z0="d:\mydir\read.me"; @c12
  5392.                    @e7 @b99(n0>0); Open was successful!
  5393.                    @p0 @e8 @b99(n0=0); @b1(z0~"execute"); @b0; @p1 @z0; @b0;
  5394.                    @e9
  5395.                    @p99
  5396.  
  5397.       @E9  - Close the file opened with @E7 (above).
  5398.  
  5399.              For examples on @E4 - @E9, see the file MAKEDOOR.BBS with this
  5400.              distribution; it demonstrates how to make a DOOR.SYS equivalent
  5401.              for those external door programs which depend on this file (ie:
  5402.              DOS 'doors' such as TradeWars is being ported to OS/2).
  5403.              NOTE: External 'door' programs such as TradeWars which make use
  5404.              of a DOOR.SYS-equivalent file expect their dates in U.S. date
  5405.              format; Magnum writes dates in either U.S. or in European date
  5406.  
  5407.  
  5408.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5409.  
  5410.  
  5411.  
  5412.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-17
  5413.     Miscellaneous @E commands
  5414.  
  5415.  
  5416.              format depending on what the user's default date format is; you
  5417.              may have to notify the user to change to U.S. date format!  The
  5418.              MAKEDOOR.BBS file was placed into your EXT DIR with this
  5419.              installation.  If you plan on using it, you will need to modify
  5420.              part of it to reflect things about your system - see the
  5421.              comments within that file.
  5422.  
  5423.       @E10 - Disable output. Suspend all output to modem or screen.
  5424.              All output sent following this command will be discarded
  5425.              (ignored) until the @E11 command is issued.
  5426.  
  5427.       @E11 - Enable output. Negates @E10, resumes output.
  5428.  
  5429.       @E12 - Disable Timer. This command comes in handy when someone is
  5430.              about to run out of time on your system, and you want them to
  5431.              have more time. For example, suppose you run a subscription
  5432.              service or offer an 'online order' menu in which users can
  5433.              place credit card orders. We've seen users get logged off by
  5434.              Magnum because they ran out of time, yet they were in the
  5435.              middle of trying to place on online order! When you use the
  5436.              new @E12 command, this will no longer happen. The timer is
  5437.              temporarily suspended with this command, until you issue an
  5438.              @E13 command to reactivate the timer.
  5439.              NOTE: If you forget to negate this command with the @E13
  5440.                    command, the timer will not reactivate! Therefore,
  5441.                    we've built in a safety measure. If you use this
  5442.                    command, Magnum will automatically issue an @E13 command
  5443.                    internally after a period of 5 minutes.
  5444.  
  5445.       @E13 - Enable Timer. Negates @E12 (ie: re-activates timer).
  5446.  
  5447.       @E14 - ReOpen FileBase 0 (main)
  5448.  
  5449.       @E15 - ReOpen  MsgBase 0 (main)
  5450.  
  5451.              NOTE: MILC commands @E14 and @E15 are designed to be used after
  5452.              calling calling a .MEX program with the @E0 command (do not use
  5453.              these if calling the .MEX program with the @E1 command).  When
  5454.              a .MEX program is called to update a user's file or msg access
  5455.              areas online, the update takes place immediately, however, the
  5456.              information within the file & msg menus don't reflect the
  5457.              change until next logon.  Use of the new @E14 and @E15 commands
  5458.              will refresh the access areas to the menus.
  5459.  
  5460.       @E16 - Disable Timer.  Like @E12 but no automatic timer re-enable.
  5461.              You must issue the @E13 command to re-enable the timer if you
  5462.              disabled it with this new @E16 command.
  5463.  
  5464.       @E17 - Strips CR/LF from text in @Z0 - useful for read operations
  5465.              performed with @E8.
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5472.  
  5473.  
  5474.  
  5475.     Page  4-18              Customizing MAGNUM - Display Files/MILC Commands
  5476.                   Additional @E commands for 'Extended FileBase and MsgBase'
  5477.  
  5478.  
  5479.            Additional @E commands for 'Extended FileBase and MsgBase'
  5480.  
  5481.     PURPOSE: To provide processing power for those Sysops using optional
  5482.              'Extended FileBase' and/or 'Extended MessageBase' modules.
  5483.      FORMAT: @Ex
  5484.  
  5485.       @E80 - Prompts User to choose new FileBase (0-255). New FileBase
  5486.              chosen is also returned in @N0;. Requires 'Extended FileBase'.
  5487.  
  5488.       @E81 - Changes FileBase to value (0-255) in @N1;. New FileBase is
  5489.              also returned in @N0;. At the end of the @E81 command, if
  5490.              variables @N0 and @N1 are unequal, no change took place.
  5491.              Requires 'Extended FileBase'.
  5492.  
  5493.       @E82 - Prompts User to choose new MsgBase (0-255). New MsgBase
  5494.              chosen is also returned in @N0;. Requires 'Extended MsgBase'.
  5495.              NOTE: This command is ignored if part of a Message!
  5496.  
  5497.       @E83 - Changes MsgBase to value (0-255) in @N1;. New MsgBase is
  5498.              also returned in @N0;. At the end of the @E83 command, if
  5499.              variables @N0 and @N1 are unequal, no change took place.
  5500.              Requires 'Extended MsgBase'.
  5501.              NOTE: This command is ignored if part of a Message!
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5535.  
  5536.  
  5537.  
  5538.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-19
  5539.     Include File Commands (@I)
  5540.  
  5541.  
  5542.                                    @I Command
  5543.  
  5544.     PURPOSE: Includes (displays/processes) another display file within the
  5545.              current display file.
  5546.      FORMAT: @Ix"d:\path\filespec"  |  @Ix@Zy
  5547.  
  5548.     The  INCLUDE  command simply  halts  display of the currently displaying
  5549.     file, processes  the 'included'  file (and  any 'included'  files it may
  5550.     have), then returns  to either continue  displaying the current  file or
  5551.     ending the display of the current file, depending on parameter 'x'.
  5552.  
  5553.     'x' can be one of 0 to 4:
  5554.  
  5555.         0 = Terminate the current file after the include. Inheritance OFF.
  5556.         1 = Continue  the current file after the include. Inheritance OFF.
  5557.         2 = Terminate the current file after the include. Inheritance ON.
  5558.         3 = Continue  the current file after the include. Inheritance ON.
  5559.         4 = Same as 3 but the alterations to @Zx and @Nx variables by the
  5560.             'included' file will remain upon return.
  5561.  
  5562.     Inheritance  OFF  means  that  the  included  file will have its own @Nx
  5563.     (numeric) and  @Zx (string)  variables.   Inheritance ON  means that the
  5564.     included file will inherit the @Nx and @Zx variables of the calling file
  5565.     - upon return  to the calling  file, the @Nx  and @Zx variables  will be
  5566.     restored  to  where  they  were  prior  to  the  'include' if 'x' was 3,
  5567.     otherwise  if  'x'  was  4,  the  @Nx  and @Zx variables will retain any
  5568.     changes made by the 'included' file.
  5569.  
  5570.     NOTE: Please have a thorough understanding of the @N and @Z commands
  5571.           before continuing!
  5572.  
  5573.     This powerful command is the entire basis for Bulletins, Questionairres,
  5574.     Newsletters or  any other  kind of  file offering  a menu.   An  example
  5575.     Bulletin file (BULLETIN.BBS or  BULLETIN.SCR) might look something  like
  5576.     this:
  5577.  
  5578.               @P30  @c8
  5579.                                              @a14BULLETIN MAIN MENU@a10
  5580.  
  5581.  
  5582.                 1 - What is MAGNUM BBS and who is Gilmore Systems, anyway?
  5583.  
  5584.                 2 - WOW! How can I get a copy of MAGNUM, What's the price?
  5585.  
  5586.                 3 - Info about becoming a purchasing MAGNUM BBS software.
  5587.  
  5588.                 Q - Quit - return to BBS
  5589.  
  5590.               Choice => @z0('123Q');
  5591.               @b1(z0="Q");
  5592.               @z1=("c:\gs\com\1\bul_dir\bullet"+z0); @i1@z1 @b30(0=0);
  5593.               @P1
  5594.  
  5595.  
  5596.  
  5597.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5598.  
  5599.  
  5600.  
  5601.     Page  4-20              Customizing MAGNUM - Display Files/MILC Commands
  5602.                                                   Include File Commands (@I)
  5603.  
  5604.  
  5605.     The file works like this:  The @P30 defines a label.  The @C8 resets the
  5606.     line counter (for the -More- prompt).  The @A14 and @A10 commands change
  5607.     the color.  All text is displayed.  After "Choice => " is displayed, the
  5608.     @Z0 command restricts the user to choose one of 1,2,3 or Q. If the  user
  5609.     chose  Q,  a  branch  is  made  to  @P1  which  is  the end of the file.
  5610.     Otherwise,  no  branch  is  made  and  string variable @Z1 is assigned a
  5611.     partial  filespec  to  which  the  user's  choice  ("1", "2", or "3") is
  5612.     concatenated  (if  the  user  chose  "2"  for example, @Z1 would contain
  5613.     "C:\GS\COM\1\BUL_DIR\BULLET2").   The next  command 'includes'  the file
  5614.     named in variable  @Z1 without inheritance  and continues with  the next
  5615.     instruction after the 'included' file is finished displaying.  The  next
  5616.     instruction unconditionally branches  to label @P30  to start the  whole
  5617.     process over again.
  5618.  
  5619.     The above example used  a @Zx (string) variable  to contain the name  of
  5620.     the file to be 'included'.  Note that for less sophisticated menus,  you
  5621.     could 'hard-code' the filename within quotes:
  5622.  
  5623.             @I0"c:\gs\com\1\bul_dir\bullet2"
  5624.     or
  5625.             @I0"c:\gs\com\1\bul_dir\bullet2.bbs".
  5626.  
  5627.     NOTES:  1) The variable @Z1 purposely was not given a filename
  5628.                extension. When no filename extension is given, the 'include'
  5629.                command will first look for the filename with an extension of
  5630.                ".SCR" if the user's color settings are set to YES. If not
  5631.                found, or if the user's color settings are set to NO, then it
  5632.                will look for the filename with an extension of ".BBS". If
  5633.                neither is found, the 'include' ends, returning back to the
  5634.                calling file.
  5635.  
  5636.             2) DO NOT go beyond 3 to 4 levels of includes. In other words,
  5637.                for maximum safety, File A can include file B, which includes
  5638.                file C, which includes file D. Do not go beyond this point to
  5639.                a file E!
  5640.  
  5641.             3) Note that unlike other '@' commands, when a @Zx variable
  5642.                contains the name of an 'included' file, the '@' (or current
  5643.                command character) is needed. In other words, @I1@Z4 is
  5644.                correct, while @I1Z4 is incorrect.
  5645.  
  5646.     With the power  of the @I  command, menus and  submenus can be  built to
  5647.     form a sophisticated Bulletin menu/system, Questionairre menu/system  or
  5648.     Newsletter menu/system.  When a caller logs on, the system will check to
  5649.     see  if  either  BULLETIN.SCR  (or  BULLETIN.BBS),  and  NEWSLTR.SCR (or
  5650.     NEWSLTR.BBS) has a filedate later than the caller's last call.  If true,
  5651.     the system will advise the caller that BULLETIN(s) or NEWSLETTER(s) have
  5652.     been updated since their last call (giving dates and times of  updates).
  5653.     So remember that if  you make a change  to any of the  'included' files,
  5654.     you  must  change  the  date  of  the BULLETIN.SCR (or BULLETIN.BBS), or
  5655.     NEWSLTR.SCR (or NEWSLTR.BBS).
  5656.  
  5657.  
  5658.  
  5659.  
  5660.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5661.  
  5662.  
  5663.  
  5664.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-21
  5665.     Date Manipulation Commands (@J and @Y)
  5666.  
  5667.  
  5668.                                @J and @Y Commands
  5669.  
  5670.     PURPOSE: Converts dates to and from string format (MM/DD/YYYY or
  5671.              DD.MM.YYYY) to numeric format NNNNNNNN
  5672.     FORMAT:  @Jx or @Yx
  5673.              where 'x' references a @Zx variable.
  5674.  
  5675.     @Jx  - Converts a date (MM/DD/YYYY or DD.MM.YYYY) stored in variable
  5676.            @Zx to a numeric string representing the number of days from
  5677.            01/01/1900 (01.01.1900). For Example, if the date in @Z5 contains
  5678.            "06/01/1989", then issuing @J5 would overwrite the equivalent
  5679.            number of days between 01/01/1900 and 06/01/1989 in @Z5. Variable
  5680.            @Z5 can then be assigned to a numeric variable (@Nx) for further
  5681.            manipulation.  The date string in @Zx prior to calling the @Jx
  5682.            function can be stored in either US or European format and can
  5683.            be in the short form (ie: 1/6 or 6.1 or 1/6/2). Note that if the
  5684.            date string is in error, the function will overwrite the @Zx
  5685.            variable with the numeric string "0" (without the quotes).
  5686.            The following example of using the @Jx variable demonstrates how
  5687.            it could be put to use on a subscription BBS which relies on the
  5688.            MEMODATE2 field:
  5689.                             @z1=o17;       @c3 Get Today's date @c4
  5690.                             @z2=u23;       @c3 Get User's MEMODATE2 @c4
  5691.                             @j1 @j2 @n1=z1; @n2=z2; @n0=(n2-n1);
  5692.                             Your subscription expires in @n0; days!
  5693.  
  5694.     @Yx  - The opposite of @Jx. Converts a numeric string stored in variable
  5695.            @Zx, overwriting the @Zx variable with the date in MM/DD/YYYY or
  5696.            DD.MM.YYYY format depending on the users dateformat setting. Note
  5697.            that if the value in the @Zx variable is in error (ie: a negative
  5698.            number), the @Zx string will be overwritten with 01/01/1900 (or
  5699.            01.01.1900 depending on the user's dateformat setting).
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5724.  
  5725.  
  5726.  
  5727.     Page  4-22              Customizing MAGNUM - Display Files/MILC Commands
  5728.                                                            Call Command (@K)
  5729.  
  5730.  
  5731.                                    @K Command
  5732.  
  5733.     PURPOSE: Calls a routine located at label @Px. Returns to area following
  5734.              the call upon a return (@#) instruction.
  5735.      FORMAT: @K(exp);
  5736.  
  5737.       @K(exp); - Same as @B(exp); but Kalls (calls) the part of the file
  5738.                  identified by a @Px label. The result is identical to the
  5739.                  @B(exp) command, but the return address is saved on an
  5740.                  internal stack. To return back to the position after the
  5741.                  @K(exp); is issued, issue the new MILC command @# to
  5742.                  signify a return command.
  5743.  
  5744.                  Example:
  5745.  
  5746.                      @B1;                  unconditional branch to @P1
  5747.                      .
  5748.                      .
  5749.                      @P5                   Label (signifies branch address)
  5750.                      .
  5751.                      .
  5752.                      .
  5753.                      @#                    Branch back to caller if called
  5754.                      .                     by a @K(exp) command.
  5755.                      .
  5756.                      @P1
  5757.                      .
  5758.                      .
  5759.                      @K5;                  Branch (Kall) code at @P5
  5760.                      .                     Return to next instruction (here)
  5761.                      .                     when done
  5762.  
  5763.                   Kalls (calls) can be nested up to 50 levels.
  5764.  
  5765.         The MILC command @# ends the call, and returns processing back to
  5766.         the place in the file immediately preceeding the @K(exp); command.
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5787.  
  5788.  
  5789.  
  5790.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-23
  5791.     Security Level Commands (@L)
  5792.  
  5793.  
  5794.  
  5795.                                    @L Command
  5796.  
  5797.     PURPOSE: Processes all following text and commands for a specific
  5798.              security level only.
  5799.      FORMAT: @Lx
  5800.              where 'x' is a security level
  5801.  
  5802.     The @Lx command allows  text/commands to be displayed/processed  only if
  5803.     the remote user viewing the file has a security level equal to 'x'.  The
  5804.     command @L10  for example,  activates this  feature such  that the  file
  5805.     display functions  will only  display text  and process  commands if the
  5806.     current user has a security level of  10.  For Users at higher or  lower
  5807.     levels, the command will act identically to the @C3 command.  This  will
  5808.     continue until another @Lx command is issued, which changes the security
  5809.     level again.
  5810.  
  5811.     To revert back to normal processing, the command @L0 will negate the @Lx
  5812.     command.
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829.  
  5830.  
  5831.  
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841.  
  5842.  
  5843.  
  5844.  
  5845.  
  5846.  
  5847.  
  5848.  
  5849.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5850.  
  5851.  
  5852.  
  5853.     Page  4-24              Customizing MAGNUM - Display Files/MILC Commands
  5854.                                 Match Filename in FILE DATAbase (@M) command
  5855.  
  5856.  
  5857.  
  5858.                                    @M Command
  5859.  
  5860.     PURPOSE: Matches a Filename in the FILE DATAbase in preparation for
  5861.              external protocol(s).
  5862.     FORMAT:  @Mx
  5863.              where 'x' references a @Zx variable.
  5864.  
  5865.     @Mx  - Match filename in the FILE database. In preparation for external
  5866.            protocols, if a filename is in variable @Zx, the @Mx command will
  5867.            return the complete filespec (drive,path,filename,ext) in @Zx.
  5868.            For example, if the filename MAGNUM2.ZIP is in variable @Z5, then
  5869.            @M5 would overwrite @Z5 with D:\MAGNUM\GILMORE\MAGNUM2.ZIP or
  5870.            whatever the matching filespec would be for the file. If the
  5871.            filename is not found, or the filename is in a file area
  5872.            inaccessible to the user, then @Z5 will be null upon return from
  5873.            the @M5 function. If the filename is password protected, the user
  5874.            will be prompted for the password - if the password is wrong, the
  5875.            @Z5 variable will become null.
  5876.            If the value of x for @Mx is >= 40, then the following format is
  5877.            returned in variable @Zx:
  5878.  
  5879.                d:\path\filename[.ext]  nnnnnn  mm/dd/yyyy
  5880.                          |               |        |_______ file date
  5881.                          |               |________________ file size
  5882.                          |________________________________ filespec
  5883.  
  5884.            otherwise, if the value of x for @Mx is < 40, then the following
  5885.            format is returned in variable @Zx:
  5886.  
  5887.                d:\path\filename[.ext]
  5888.  
  5889.  
  5890.  
  5891.  
  5892.  
  5893.  
  5894.  
  5895.  
  5896.  
  5897.  
  5898.  
  5899.  
  5900.  
  5901.  
  5902.  
  5903.  
  5904.  
  5905.  
  5906.  
  5907.  
  5908.  
  5909.  
  5910.  
  5911.  
  5912.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5913.  
  5914.  
  5915.  
  5916.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-25
  5917.     Numeric (@N) Commands (ie: mathematics, I/O, etc)
  5918.  
  5919.  
  5920.  
  5921.                                       @N Command
  5922.  
  5923.     PURPOSE: Numeric variable command. Performs arithmetic functions, screen
  5924.              I/O, and file writes.
  5925.     FORMATs: @Nx;             Prints contents of @Nx
  5926.              @Nx=Ny;          Assigns contents of @Ny to @Nx
  5927.              @Nx=y;           Assigns a value to @Nx (ie: @N1=12;)
  5928.              @Nx(a,b);        Assigns remote user's input to @Nx
  5929.              @Nx=Zy;          Converts string variable @Zy to numeric,
  5930.                                assign to @Nx
  5931.              @Nx=(EXP);       Performs a mathematical expression
  5932.              @Nx("string");   Writes "string" to disk, followed by contents
  5933.                                of @Nx
  5934.  
  5935.          where 'x' is the variable identifier (0 to 99), 'a' and 'b' are
  5936.          numbers, EXP is an arithmetic expression, "string" is a character
  5937.          string, 'y' is a number.
  5938.  
  5939.     The @Nx  command is  a very  powerful command  in that  it performs many
  5940.     different tasks.  It  is capable of user  input, screen or file  output,
  5941.     performing arithmetic expressions, conversion of @Zx (string)  variables
  5942.     to numeric, etc.
  5943.  
  5944.     There are 100 different  numeric variables available (identified  as @N0
  5945.     to @N99).  Each one of these  is unique, and is capable of doing  32-bit
  5946.     arithmetic (long integers).  This means that values can range from minus
  5947.     2 billion something to plus 2  billion something.  That's a fairly  wide
  5948.     range.  Note that floating point is NOT supported since it would take up
  5949.     too much program space and require  too much processing time.  You  can,
  5950.     however make it appear as though floating point is supported by using  a
  5951.     technique called scaling.   It is beyond the  scope of this document  to
  5952.     cover  scaling  techniques,  but  if  you  are familiar with scaling you
  5953.     should have no problems.
  5954.  
  5955.     Note that all @N commands must end with the ';' (semicolon) character!
  5956.  
  5957.     Let's go through the different capabilities:
  5958.  
  5959.     DISPLAY THE CONTENTS OF A NUMERIC VARIABLE:
  5960.  
  5961.        This is the simplest form of the @N commands. Simply "@Nx;" (without
  5962.        quotes) where 'x' is the numeric variable (0 to 99) that you wish the
  5963.        contents displayed. If @N5 had the value 2005 in it, then the command
  5964.  
  5965.              @N5;
  5966.  
  5967.        embedded anywhere within the file will display "2005" (without
  5968.        quotes) on the remote user's screen.
  5969.  
  5970.     ASSIGNMENT TO A NUMERIC VARIABLE:
  5971.  
  5972.        This is the next simplest form of the @N command. Let's suppose that
  5973.  
  5974.  
  5975.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  5976.  
  5977.  
  5978.  
  5979.     Page  4-26              Customizing MAGNUM - Display Files/MILC Commands
  5980.                            Numeric (@N) Commands (ie: mathematics, I/O, etc)
  5981.  
  5982.  
  5983.        the numeric variable @N4 had the value 250:
  5984.  
  5985.             @N1=N4;      @N2=12;
  5986.  
  5987.        In the above two examples, the contents of @N4 (which we said was
  5988.        250) is assigned to @N1, therefore @N1 and @N4 now both hold the
  5989.        value 250. In the @N2 assignment, the value 12 is being assigned
  5990.        to @N2.
  5991.  
  5992.     GETTING REMOTE USER's NUMERIC INPUT:
  5993.  
  5994.        The @N command can also ask the remote user to input a number. The
  5995.        format of this form of the @N command is:
  5996.  
  5997.                      @Nx(a,b);
  5998.  
  5999.        where 'x' (as usual) represents which N variable you want (0 to 99),
  6000.        and 'a' and 'b' represent the allowable range of numbers the user can
  6001.        enter. For example:
  6002.  
  6003.               Please Enter Your Age => @N1(5,120);
  6004.  
  6005.        This would print "Please Enter Your Age => " and wait for the user to
  6006.        enter a numeric response. Once the user enters their response, it is
  6007.        checked to see if it falls within the range of 5 to 120 (inclusive)
  6008.        and if it does, it assigns their answer to variable @N1. If it does
  6009.        not fall within the accepted range, a beep is emitted on the remote
  6010.        user's terminal and they are required to re-enter their answer. The
  6011.        display of the file will not continue until the remote user has
  6012.        entered an acceptable number.
  6013.  
  6014.     CONVERTING A STRING VARIABLE (@Zx) TO NUMERIC:
  6015.  
  6016.        The @Nx command is capable of converting a string variable to
  6017.        numeric, provided that the string variable consists of digits. If it
  6018.        does not consist of digits, the value 0 will be assigned to the
  6019.        numeric variable. Note that a numeric string of "0" and "John" will
  6020.        both result in the @Nx variable being assigned the value of 0. Some
  6021.        examples follow:
  6022.  
  6023.               @Z5="365";  @N2=Z5;  @N2;
  6024.  
  6025.        In the above example, the string variable @Z5 is assigned the string
  6026.        "365". The next statement - @N2=Z5; - converts the string "365" to
  6027.        numeric and assigns the result in @N2. The next statement displays
  6028.        the value of @N2 which is 365.
  6029.  
  6030.     PERFORMING MATHEMATICS:
  6031.  
  6032.        And now for the real power of the @Nx command - mathematics!
  6033.        An example follows:
  6034.  
  6035.               @N5=365;  @N4=(N5/7);  There are @N4; weeks in a year.
  6036.  
  6037.  
  6038.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6039.  
  6040.  
  6041.  
  6042.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-27
  6043.     Numeric (@N) Commands (ie: mathematics, I/O, etc)
  6044.  
  6045.  
  6046.  
  6047.        In the above example, @N5 is assigned the value 365. Next, @N4 is
  6048.        assigned the result of the expression (N5/7) which is identical to
  6049.        365/7, yielding a result of 52. Then "There are 52 weeks in a year."
  6050.        is displayed. As mentioned earlier, floating point is not supported.
  6051.        Therefore, the result of 365/7 is 52 (not 52.14286) - the decimal
  6052.        portion is simply truncated (dropped) - not rounded.
  6053.  
  6054.        The format @Nx=(EXP); for the (EXP) part must follow 3 rules:
  6055.  
  6056.               The expression must be enclosed in parenthesis.
  6057.               The first parameter MUST be a @N variable.
  6058.               The second parameter can be either a @N variable or number.
  6059.  
  6060.        In other words, @N5=(N10+12);  is correct.
  6061.                        @N5=(N10+N30); is correct.
  6062.                        @N5=(45+N3);   is incorrect.
  6063.                        @N5=(45+70);   is incorrect.
  6064.  
  6065.        As always, note the lack of any spaces, and the terminating ';'.
  6066.        The operation to be performed in the EXP part of the example can be
  6067.        one of:
  6068.  
  6069.                +    addition
  6070.                -    subtraction
  6071.                *    multiplication
  6072.                /    division
  6073.                %    modulus (remainder)
  6074.                ^    XOR (bitwise exlusive or)
  6075.                |    OR  (bitwise OR)
  6076.                &    AND (bitwise AND)
  6077.  
  6078.        Most of you will be using the first 4 operations. The next 4
  6079.        (%,^,|,&) are beyond the scope of this document, therefore - if you
  6080.        are not familiar with what a modulus, XOR, OR, or AND are then you
  6081.        will have no need for them anyway.
  6082.  
  6083.     WRITING THE @Nx VARIABLE TO DISK:
  6084.  
  6085.        With all the power of the @Nx command, it would certainly be a shame
  6086.        if there were no way to write the contents of some of the variables
  6087.        to disk. This is handy with such files as Questionairres. To write
  6088.        the contents of a @Nx variable to disk, simply:
  6089.  
  6090.                @N5("Total Price: $");
  6091.  
  6092.        Assuming @N5 had the value 500. The above statement would write the
  6093.        following line to a disk file:
  6094.  
  6095.                Total Price: $500
  6096.  
  6097.        Another example might be:
  6098.  
  6099.  
  6100.  
  6101.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6102.  
  6103.  
  6104.  
  6105.     Page  4-28              Customizing MAGNUM - Display Files/MILC Commands
  6106.                            Numeric (@N) Commands (ie: mathematics, I/O, etc)
  6107.  
  6108.  
  6109.                @Z1=O10; @N1=Z1; @N2=72; @N1(N2-N1);
  6110.                @N1("Years left for average life expectancy: ");
  6111.  
  6112.        Assuming the user's age is 25, we place the user's age (see @O
  6113.        command) in the variable @Z1. Next, we assign the numeric equivalent
  6114.        to numeric variable @N1. Numeric variable @N2 is assigned the value
  6115.        72. We then assign to @N1 the result of the expression (N2-N1) or
  6116.        72-25. The following line then gets printed to disk:
  6117.  
  6118.                Years left for average life expectancy: 47
  6119.  
  6120.        Which file does it write to? Whatever file is currently being
  6121.        displayed, the output file will have the same name but with an
  6122.        extension of ".R??", where the "??" will be replaced with the com
  6123.        port number the user is logged on to. The output file will always be
  6124.        placed in the SYSOUT directory. So if the user was displaying
  6125.                            "c:\gs\com\1\bul_dir\ques1"
  6126.                         or "c:\gs\com\1\bul_dir\ques1.bbs"
  6127.                         or "c:\gs\com\1\bul_dir\ques1.scr"
  6128.        the output file will be "ques1.r01" if the user is on com port 1,
  6129.                                "ques1.r02" if the user is on com port 2, etc
  6130.        the output file will always be placed in the SYSOUT DIRECTORY. The
  6131.        'R' in ".R01", ".R02", etc stands for "Response" since we are
  6132.        normally writing the user's responses to the output file.
  6133.  
  6134.        We used the above example file names since they are all the same -
  6135.        the extension simply gets stripped off, and replaced with the ".R??"
  6136.        extension (as explained above), while the path is changed to point to
  6137.        the session directory. It's that simple!
  6138.  
  6139.        Note that if the response file does not exist, it will be created. If
  6140.        the response file already exists, it will be appended to.
  6141.  
  6142.        How do we know which user was online at the time we wrote the answers
  6143.        to the disk file? When the very first response gets written to the
  6144.        response file, the system will write the user's name, id number,
  6145.        date, time and some other info to the file before writing the
  6146.        response to the file.
  6147.  
  6148.     AN EXAMPLE QUESTIONAIRRE FILE:
  6149.  
  6150.                         Questionairre #2 - Fictitious credit card order
  6151.  
  6152.         @P1 1) Credit Card # => @Z0(20);
  6153.  
  6154.         @P2 2) Purchase of: A) 20 Mb Hard Disk    ($100)
  6155.                          B) 2400 baud modem    ($ 95)
  6156.                          C) Personal Computer  ($900)
  6157.                          D) MBBS for OS/2      ($400)
  6158.  
  6159.                     Choice (A, B, C or D) => @Z1('ABCD');
  6160.                     @b40(Z1="A"); @b41(Z1="B"); @b42(Z1="C"); @b43(Z1="D");
  6161.  
  6162.  
  6163.  
  6164.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6165.  
  6166.  
  6167.  
  6168.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-29
  6169.     Numeric (@N) Commands (ie: mathematics, I/O, etc)
  6170.  
  6171.  
  6172.         @P3    Your order for $@n1;.00 + $10.00 for shipping/handling comes
  6173.             to a grand total of @n2=(n1+10);$@n2;.00
  6174.  
  6175.         Is all of the above information correct (Y/N) => @Z2('yn');
  6176.         @B1(Z2="N");
  6177.         @Z0("Credit Card # "); @Z3("Purchased: "); @N2("Total Price: $");
  6178.         @b49(0=0);
  6179.  
  6180.         @p40 @n1=100; @Z3="20 Mb Hard Disk"; @b3(0=0);
  6181.         @p41 @n1=95;  @Z3="2400 baud modem"; @b3(0=0);
  6182.         @p42 @n1=900; @Z3="Personal Computer"; @b3(0=0);
  6183.         @p43 @n1=400; @Z3="MBBS for OS/2"; @b3(0=0);
  6184.  
  6185.         @p49 Thank you for your order, @u3
  6186.          We'll be sending that off to:
  6187.  
  6188.               @u3 @u4 @u2
  6189.               @u6
  6190.               @u7
  6191.               @u8, @u9, @u10
  6192.               @u11
  6193.         @c9
  6194.  
  6195.        Assuming "ques2.bbs" is the questionnaire, and the user on node 1
  6196.        completed it, the response file "ques2.r01" will be logged in the
  6197.        SYSOUT directory. A typical might look like the following:
  6198.  
  6199.               ------------------------------------------------------------
  6200.               **** USER: JOE S USER
  6201.               ****** ID: "/3"   AGE: 36
  6202.               **** FROM: self
  6203.                          123 Sesame St.
  6204.                          Los Angeles, CA 90067 - USA
  6205.               ** PHONE1: 213-555-2125    PHONE2: 213-555-1900 ext 25
  6206.               * * * ANSWERS LOGGED AT 18:43 on Thursday, 13 April 1989
  6207.  
  6208.               Credit Card # 1234-123-123-123
  6209.               Purchased: MBBS for OS/2
  6210.               Total Price: $410
  6211.               ------------------------------------------------------------
  6212.               **** USER: JOHN K DOE
  6213.               ****** ID: "/248"   AGE: 22
  6214.               **** FROM: Unlimited Products, Inc.
  6215.                          24 Tower Drive, Suite 135
  6216.                          Chicago, IL 60601 - USA
  6217.               ** PHONE1: (312) 555-4321    PHONE2: (312) 555-1234
  6218.               * * * ANSWERS LOGGED AT 20:02 on Thursday, 13 April 1989
  6219.  
  6220.               Credit Card # 1234-5678-9012-3456
  6221.               Purchased: 2400 baud modem
  6222.               Total Price: $105
  6223.  
  6224.  
  6225.  
  6226.  
  6227.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6228.  
  6229.  
  6230.  
  6231.     Page  4-30              Customizing MAGNUM - Display Files/MILC Commands
  6232.                                          Other (Miscellaneous) Commands (@O)
  6233.  
  6234.  
  6235.  
  6236.                                       @O Command
  6237.  
  6238.     PURPOSE: 'OTHER' (miscellaneous) information will display about the
  6239.              system date and time, and other miscellaneous information.
  6240.      FORMAT: @Ox
  6241.              where 'x' is the parameter (a number) representing what to
  6242.              display.
  6243.  
  6244.     The command  @Ox in  a display  file will  be replaced  with information
  6245.     about the system date, time or other miscellaneous information depending
  6246.     on the value of the 'x' parameter.
  6247.  
  6248.     The 'x' parameter can range from 0 to 26 as follows:
  6249.  
  6250.              @O0  - Hours (ranges from 00 to 23)
  6251.  
  6252.              @O1  - Minutes (ranges from 00 to 59)
  6253.  
  6254.              @O2  - Seconds (ranges from 00 to 59)
  6255.  
  6256.              @O3  - Hundredths of seconds (ranges from 00 to 99)
  6257.  
  6258.              @O4  - Day of month (ranges from 00 to 31)
  6259.  
  6260.              @O5  - Month (ranges from 01 to 12)
  6261.  
  6262.              @O6  - Year (the current 4-digit year)
  6263.  
  6264.              @O7  - Day of week (string: "Sunday", "Monday", etc)
  6265.  
  6266.              @O8  - Month (string: "January", "February", etc)
  6267.  
  6268.              @O9  - Time (string: "3:57 PM", "12:01 AM", etc)
  6269.  
  6270.              @O10 - User's age
  6271.  
  6272.              @O11 - Minutes user has been online this call
  6273.  
  6274.              @O12 - NODE # user is on
  6275.  
  6276.              @O13 - Total calls received on PORT #
  6277.  
  6278.              @O14 - Previous caller's name (up to 62 chars)
  6279.  
  6280.              @O15 - Previous caller's location (up to 62 chars)
  6281.  
  6282.              @O16 - Magnum Version Number (up to 9 chars)
  6283.  
  6284.              @O17 - Current date in either MM/DD/YYYY or DD.MM.YYYY format
  6285.                     depending on the user's dateformat setting.
  6286.  
  6287.              @O18 - Used for creating a random 8-digit string. This is
  6288.  
  6289.  
  6290.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6291.  
  6292.  
  6293.  
  6294.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-31
  6295.     Other (Miscellaneous) Commands (@O)
  6296.  
  6297.  
  6298.                     related to RJE programs, such that if someone starts the
  6299.                     same RJE program more than once, you don't want it
  6300.                     writing its output to the same filename every time. This
  6301.                     command provides a unique way of creating a filename
  6302.                     which is unique (less the extension) to pass to RJE or
  6303.                     other programs external to Magnum requiring an output
  6304.                     filename to write to.
  6305.  
  6306.                     Example:
  6307.  
  6308.                        @z0="pgmname.exe"; @z1=o18; @z1=(z1+".txt"); @e1
  6309.  
  6310.                     The string returned is time-dependent. It consists of:
  6311.  
  6312.                        HHMMSShh
  6313.  
  6314.                     where:
  6315.  
  6316.                        HH = current hour of current day
  6317.                        MM = current minute of current day
  6318.                        SS = current seconds of current day
  6319.                        hh = current hundredths of seconds of current day
  6320.  
  6321.                     @z1=o18;
  6322.  
  6323.                     is identical to doing the following:
  6324.  
  6325.                        @z1=z0; @z2=o1; @z1=(z1+z2); @z2=o2; @z1=(z1+z2);
  6326.                        @z2=o3; @z1=(z1+z2);
  6327.  
  6328.  
  6329.              @O19 - Logon type:
  6330.  
  6331.                       L = Local Logon  (keyboard/console or local logon
  6332.                           module)
  6333.                       R = Remote Logon (modem)
  6334.                      PF = Pipe in Full Duplex (OS/2 workstation)
  6335.                      PH = Pipe in Half Duplex (DOS workstation)
  6336.  
  6337.                  Half duplex pipes have the following restrictions:
  6338.  
  6339.                     - Cannot stop displays with <Ctrl-X> or <SpaceBar>
  6340.                     - Cannot run interactive child (door) programs unless
  6341.                       those programs conform to Magnum's duplex-switching
  6342.                       scheme (contact Gilmore Systems for more information).
  6343.                     - Chat mode not allowed.
  6344.  
  6345.              @O20 - The 10-digit Serial Number of Magnum for THIS machine.
  6346.  
  6347.              @O21 - The 10-digit Parent Serial Number of Magnum.
  6348.  
  6349.              @O22 - "TRUE" or "FALSE" (without the quotes) if the
  6350.                     system has the 'Extended FileBase' option.
  6351.  
  6352.  
  6353.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6354.  
  6355.  
  6356.  
  6357.     Page  4-32              Customizing MAGNUM - Display Files/MILC Commands
  6358.                                          Other (Miscellaneous) Commands (@O)
  6359.  
  6360.  
  6361.  
  6362.              @O23 - "TRUE" or "FALSE" (without the quotes) if the
  6363.                     system has the 'Extended MsgBase' option.
  6364.  
  6365.              @O24 - Returns the DEVICENAME used for this node.
  6366.  
  6367.              @O25 - returns OS version (ie: "1.30", "2.00", "2.10", etc).
  6368.  
  6369.              @O26 - displays ID number for 'outside mail id'.
  6370.  
  6371.  
  6372.  
  6373.  
  6374.  
  6375.  
  6376.  
  6377.  
  6378.  
  6379.  
  6380.  
  6381.  
  6382.  
  6383.  
  6384.  
  6385.  
  6386.  
  6387.  
  6388.  
  6389.  
  6390.  
  6391.  
  6392.  
  6393.  
  6394.  
  6395.  
  6396.  
  6397.  
  6398.  
  6399.  
  6400.  
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406.  
  6407.  
  6408.  
  6409.  
  6410.  
  6411.  
  6412.  
  6413.  
  6414.  
  6415.  
  6416.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6417.  
  6418.  
  6419.  
  6420.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-33
  6421.     Position (Label) Commands (@P)
  6422.  
  6423.  
  6424.  
  6425.                                       @P Command
  6426.  
  6427.     PURPOSE: Defines a POSITION (LABEL) in a file to be a target for a
  6428.              BRANCH command.
  6429.      FORMAT: @Px
  6430.              where 'x' is the label number.
  6431.  
  6432.     The POSITION (or LABEL) command simply marks a place in the display file
  6433.     for later use as a target for a BRANCH instruction.  'x' can range  from
  6434.     0 to 99.
  6435.  
  6436.     See the @B command for examples.
  6437.  
  6438.     NOTE: 'x' must fall within the range of 0 to 99.
  6439.  
  6440.  
  6441.  
  6442.  
  6443.  
  6444.  
  6445.  
  6446.  
  6447.  
  6448.  
  6449.  
  6450.  
  6451.  
  6452.  
  6453.  
  6454.  
  6455.  
  6456.  
  6457.  
  6458.  
  6459.  
  6460.  
  6461.  
  6462.  
  6463.  
  6464.  
  6465.  
  6466.  
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6480.  
  6481.  
  6482.  
  6483.     Page  4-34              Customizing MAGNUM - Display Files/MILC Commands
  6484.                 Retain (@R), File (@F) and Query (@Q) MILC Variables @Z & @N
  6485.  
  6486.  
  6487.  
  6488.                                    @R Command
  6489.  
  6490.     PURPOSE: To retain the values of all @Zx and @Nx MILC variables such
  6491.              that they can be used by other files. (IE: MAKES @Zx and @Nx
  6492.              variables GLOBAL).
  6493.     @FORMAT: @Rx
  6494.              where 'x' is one of 0 or 1 as follows:
  6495.  
  6496.           @R1 - retain contents of @Zx and @Nx variables after file display.
  6497.           @R0 - do not retain contents of @Zx and @Nx variables (default).
  6498.  
  6499.     Whenever  the  display  routines  come  across  the @R1 command within a
  6500.     display file, the @Nx  and @Zx variables will  be retained.  This  means
  6501.     that any subsequent  display file can  use the previously  stored values
  6502.     stored within these  variables.  Note  that the use  of @R1 makes  these
  6503.     variables global, so if one display routine changes the contents of  any
  6504.     given variable, all subsequent display  routines will find the value  to
  6505.     be that  of the  most recent  assignment statement  to the  variable(s).
  6506.     Note that the @Ix command ("include") will remain unaffected by the  @R1
  6507.     command.
  6508.  
  6509.     To negate  the @R1  command, simply  issue a  @R0 command  and the  file
  6510.     display routines will return to the  normal way in which Magnum used  to
  6511.     process its MILC commands.
  6512.  
  6513.     When the display file routine  starts, it initializes all @Zx  variables
  6514.     and to nul (""),  and all @Nx variables  to zeros (0).   The @R1 command
  6515.     merely tells the file display routine not to do this for all  subsequent
  6516.     file displays.  The @R0  command negates this, causing the  file display
  6517.     routines to reinitialize all @Zx and @Nx variables.
  6518.  
  6519.     CAUTION: User messages (in the message section) will result in the
  6520.              @Nx and @Zx variables not being initialized (ie: they will
  6521.              have access to the values stored in these variables). Note
  6522.              that users having access to MILC commands within messages
  6523.              will overwrite these values!! It would be a wise precaution
  6524.              to issue a @R0 command prior to entering the message menu.
  6525.              NOTE that any text display you've created the old way which
  6526.              depends on @Nx and @Zx variables being initialized to zeros
  6527.              and nulls should be modified such that they perform their
  6528.              own initialization (this could easily be accomplished by
  6529.              including an initialization file with the @I4 command.
  6530.  
  6531.     Because of the problems which  might occur with the globality  aspect of
  6532.     using the @R1 command above, another solution (and much greater power as
  6533.     a result) is to have the contents of the @Zx and @Nx variables saved  in
  6534.     a unique file.  This can be accomplished with two new MILC variables:
  6535.  
  6536.           @Fx - where 'x' is a unique file identifier which can range from
  6537.                 0 to 99. When an @Fx command is invoked, the contents of the
  6538.                 @Zx and @Nx variables are saved to a unique filename which
  6539.                 you will know as 'x'.
  6540.  
  6541.  
  6542.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6543.  
  6544.  
  6545.  
  6546.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-35
  6547.     Retain (@R), File (@F) and Query (@Q) MILC Variables @Z & @N
  6548.  
  6549.  
  6550.  
  6551.           @Qx - where 'x' is a unique file identifier which can range from
  6552.                 0 to 99. When an @Qx command is invoked, the contents of the
  6553.                 @Zx and @Nx variables are restored from the unique filename
  6554.                 which the @Fx command saved them to.
  6555.  
  6556.     When using @Fx to save your variables and @Qx to restore them, you don't
  6557.     have to use the  @R1 command.  However,  the @Fx and @Qx  functions have
  6558.     advantages and disadvantages over using the @R1 function.  For  example,
  6559.     with @Fx and @Qx, any subsequent  display file must know which 'x'  file
  6560.     to  restore  from.    On  the  other  hand,  the  @R1 function makes the
  6561.     variables global across the board which would proably not be a good idea
  6562.     when doing messages.
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575.  
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  
  6605.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6606.  
  6607.  
  6608.  
  6609.     Page  4-36              Customizing MAGNUM - Display Files/MILC Commands
  6610.                                                Stack Keystrokes Command (@S)
  6611.  
  6612.  
  6613.  
  6614.                                    @S Command
  6615.  
  6616.     PURPOSE: Places Keystrokes in the user's command stack, as if the user
  6617.              typed in the characters him/herself.
  6618.      FORMAT: @Sx
  6619.              where 'x' refers to which @Zx variable to stack from.
  6620.  
  6621.     This command  places characters  in the  user's command  stack.  The 'x'
  6622.     tells which @Zx variable to place  the commands in the stack from.   For
  6623.     example, if reading a display file  from the main menu, you could  place
  6624.     the user in the [F]iles menu  looking at all new files since  their last
  6625.     logon with the following:
  6626.  
  6627.          @Z7="\\f\n\+\\"; @S7 @C16
  6628.  
  6629.     Note  that  because  the  semicolon  (;)  character  is the terminataion
  6630.     character of a string assignment,  that character cannot be used  within
  6631.     the string itself!  The @Sx  command, while copying the contents of  the
  6632.     @Zx  variable  containing  the  string  to  place  in the command stack,
  6633.     converts  all  backslash  (\)  characters  to  semicolons.  In the above
  6634.     example, the @S7 command would place the following in the user's command
  6635.     stack:
  6636.  
  6637.          ;;f;n;+;;
  6638.  
  6639.     Note that this only PLACES commands  in the user's command stack.   Upon
  6640.     ending  (or  terminating  with  @C16)  the  display,  all  system  input
  6641.     (prompts) will  get their  input from  the keystrokes  now stored in the
  6642.     user's command stack  until the last  keystroke stored is  read.  Magnum
  6643.     will revert back to getting its input from the user (modem) when no more
  6644.     keystrokes remain in the command stack.
  6645.  
  6646.  
  6647.  
  6648.  
  6649.  
  6650.  
  6651.  
  6652.  
  6653.  
  6654.  
  6655.  
  6656.  
  6657.  
  6658.  
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  
  6664.  
  6665.  
  6666.  
  6667.  
  6668.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6669.  
  6670.  
  6671.  
  6672.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-37
  6673.     Text to Log (activity) File (@T)
  6674.  
  6675.  
  6676.  
  6677.                                    @T Command
  6678.  
  6679.     PURPOSE: Sends text within a quoted string or a @Zx variable to the
  6680.              ACTIVITY.x file.
  6681.     FORMAT: @Tx
  6682.             @T"string"
  6683.  
  6684.     This command writes to the ACTIVITY.x file. There are two ways to send
  6685.     text to the ACTIVITY.x file:
  6686.  
  6687.              The following example writes the text appearing within
  6688.              the double-quotes to the ACTIVITY file:
  6689.  
  6690.                     @T"This is a sample text line"
  6691.  
  6692.              The following example writes the contents of variable
  6693.              @Z5 to the ACTIVITY file:
  6694.  
  6695.                     @T5
  6696.  
  6697.  
  6698.  
  6699.  
  6700.  
  6701.  
  6702.  
  6703.  
  6704.  
  6705.  
  6706.  
  6707.  
  6708.  
  6709.  
  6710.  
  6711.  
  6712.  
  6713.  
  6714.  
  6715.  
  6716.  
  6717.  
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.  
  6724.  
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  
  6730.  
  6731.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6732.  
  6733.  
  6734.  
  6735.     Page  4-38              Customizing MAGNUM - Display Files/MILC Commands
  6736.                                              User Substitution Commands (@U)
  6737.  
  6738.  
  6739.  
  6740.                                       @U Command
  6741.  
  6742.     PURPOSE: 'USER' information will display. Ideally suited for giving the
  6743.              illusion of a customized display file to the user.
  6744.      FORMAT: @Ux
  6745.              where 'x' is the parameter (a number) representing what to
  6746.              display.
  6747.  
  6748.     The command  @Ux in  a display  file will  be replaced  with information
  6749.     about the user depending on the value of the 'x' paramter.
  6750.  
  6751.     The 'x' parameter can range from 0 to 80 as follows:
  6752.  
  6753.        @U0  - Deleted or active user. Displays "deleted" or "active".
  6754.  
  6755.        @U1  - Displays User's ID number. Up to 10 chars.
  6756.  
  6757.        @U2  - Displays user's LAST name. Up to 20 chars.
  6758.  
  6759.        @U3  - Displays user's FIRST name. Up to 20 chars(See @U77,@U78,@U79)
  6760.  
  6761.        @U4  - Displays user's MIDDLE name. Up to 10 chars.
  6762.  
  6763.        @U5  - Display's "Private Messages" or "No Private Messages"
  6764.  
  6765.        @U6  - Displays user's STREET1 (or company/handle) - up to 40 chars.
  6766.  
  6767.        @U7  - Displays user's STREET2 (or street address) - up to 40 chars.
  6768.  
  6769.        @U8  - Displays user's CITY - up to 20 chars.
  6770.  
  6771.        @U9  - Displays user's STATE or PROVINCE - up to 20 chars.
  6772.  
  6773.        @U10 - Displays user's ZIP or other postal info - up to 20 chars.
  6774.  
  6775.        @U11 - Displays user's COUNTRY - up to 20 chars.
  6776.  
  6777.        @U12 - Displays user's PASSWORD - up to 20 chars (be carefull!)
  6778.  
  6779.        @U13 - Displays date of user's FIRST CALL (10 chars)
  6780.  
  6781.        @U14 - Displays date of user's LAST CALL (10 chars)
  6782.  
  6783.        @U15 - Displays time of user's LAST CALL (5 chars)
  6784.  
  6785.        @U16 - Displays user's DATE OF BIRTH (10 chars)
  6786.  
  6787.        @U17 - Displays user's PHONE #1 (up to 20 chars)
  6788.  
  6789.        @U18 - Displays user's PHONE #2 (up to 20 chars)
  6790.  
  6791.        @U19 - Displays user's LAST "NEW FILES" search date (10 chars)
  6792.  
  6793.  
  6794.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6795.  
  6796.  
  6797.  
  6798.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-39
  6799.     User Substitution Commands (@U)
  6800.  
  6801.  
  6802.  
  6803.        @U20 - Displays user's CPU TYPE (15 chars)
  6804.  
  6805.        @U21 - Displays user's CONFERENCE letters (up to 26 chars)
  6806.  
  6807.        @U22 - Displays user's MEMODATE #1 (10 chars)
  6808.  
  6809.        @U23 - Displays user's MEMODATE #2 (10 chars)
  6810.  
  6811.        @U24 - Displays sysop's COMMENT about user (up to 60 chars) be
  6812.                careful with this one!
  6813.  
  6814.        @U25 - Displays user's selected FILE XFER PROTOCOL (up to 10 chars)
  6815.  
  6816.        @U26 - Displays user's PERIOD TYPE (up to 5 chars)
  6817.  
  6818.        @U27 - Displays "Expert" or "Novice" menu types.
  6819.  
  6820.        @U28 - Displays "Authorized" or "Unauthorized" (is user locked out?)
  6821.  
  6822.        @U29 - Displays user's color settings ("color" or "B/W")
  6823.  
  6824.        @U30 - Displays user's setting of "'More' prompt" or "No 'More'
  6825.                prompt"
  6826.  
  6827.        @U31 - Displays "Erase 'More' prompt" or "Do not erase 'More' prompt"
  6828.  
  6829.        @U32 - Displays "Single-keystroke commands" or "C/R"
  6830.  
  6831.        @U33 - Displays "Message Deletion" or "No Message Deletion"
  6832.  
  6833.        @U34 - Displays user's LINES PER SCREEN (up to 3 chars)
  6834.  
  6835.        @U35 - Displays user's SECURITY LEVEL (up to 5 chars)
  6836.  
  6837.        @U36 - Displays user's # OF FILES UPLOADED (up to 5 chars)
  6838.  
  6839.        @U37 - Displays user's # OF FILES DOWNLOADED (up to 5 chars)
  6840.  
  6841.        @U38 - Displays user's ADJUSTED CHARS/SEC XFER RATE (up to 5 chars)
  6842.  
  6843.        @U39 - Displays user's UL/DL RATIO (up to 10 chars - ie: "10 to 1")
  6844.  
  6845.        @U40 - Displays user's TOTAL CALLS (up to 10 chars)
  6846.  
  6847.        @U41 - Displays user's MINUTES REMAINING FOR THIS CALL (up to 10
  6848.                chars)
  6849.  
  6850.        @U42 - Displays user's MINUTES REMAINING FOR THE PERIOD (up to 10
  6851.                chars)
  6852.  
  6853.        @U43 - Displays user's LAST MSG NUMBER READ.  Format of display is:
  6854.               base:refnum  (ie: 3:A213CEA009A2 indicating MsgBase 3,
  6855.  
  6856.  
  6857.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6858.  
  6859.  
  6860.  
  6861.     Page  4-40              Customizing MAGNUM - Display Files/MILC Commands
  6862.                                              User Substitution Commands (@U)
  6863.  
  6864.  
  6865.               Ref# A213CEA009A2).
  6866.  
  6867.        @U44 - Displays user's ACCUMLATED UPLOAD K BYTES (up to 10 chars)
  6868.  
  6869.        @U45 - Displays user's ACCUMLATED DOWNLOAD K BYTES (up to 10 chars)
  6870.  
  6871.        @U46 - Displays user's ALLOWED NUMBER OF D/L's FOR PERIOD (up to 10
  6872.                chars)
  6873.  
  6874.        @U47 - Displays user's ALLOWED DOWNLOAD K BYTES FOR PERIOD (up to 10
  6875.                chars)
  6876.  
  6877.        @U48 - Displays user's BAUDRATE (up to 5 chars)
  6878.  
  6879.        @U49 - Displays "Modem Error Correction" or "No Modem Error
  6880.                Correction"
  6881.  
  6882.        @U50 - Displays allowable "@" commands for messages (up to 26 chars)
  6883.  
  6884.        @U51 - Displays User Date Format ("U.S." or "EUROPE")
  6885.  
  6886.        @U52 - Displays a string of up to 26 chars showing the user's FREE
  6887.                download areas)
  6888.  
  6889.        @U53 - Displays the number of FREE downloads a user has performed
  6890.  
  6891.        @U54 - In preparation for running certain externals created by
  6892.                Gilmore Systems, this MILC command supplies the complete
  6893.                filespec (drive,path,filename) for the MBBSINIT.x file
  6894.                associated with the node the user is on.
  6895.  
  6896.        @U55 - Like @U54 above, but supplies filespec for STARTUP.x instead.
  6897.                This is in preparation for running externals created from 3rd
  6898.                party software developers.
  6899.  
  6900.        @U56 - User's MSG_R_AREAS  (up to 26 chars)
  6901.        @U57 - User's MSG_W_AREAS  (up to 26 chars)
  6902.        @U58 - User's MSG_L_AREAS  (up to 26 chars)
  6903.  
  6904.        @U59 - User's FILE_U_AREAS (up to 26 chars)
  6905.        @U60 - User's FILE_D_AREAS (up to 26 chars)
  6906.        @U61 - User's FILE_L_AREAS (up to 26 chars)
  6907.  
  6908.        @U62 - Displays a string of up to 78 characters showing the user's
  6909.               areas of personal interests.
  6910.  
  6911.        @U63 - User's compression default type "ARC" or "ZIP" (w/o quotes).
  6912.  
  6913.        @U64 - Number of PUBLIC messages entered by user.
  6914.  
  6915.        @U65 - Number of PRIVATE messages entered by user.
  6916.  
  6917.        @U66 - Number of RJE Jobs run by user.
  6918.  
  6919.  
  6920.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6921.  
  6922.  
  6923.  
  6924.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-41
  6925.     User Substitution Commands (@U)
  6926.  
  6927.  
  6928.  
  6929.        @U67 - The complete filespec (drive,path,filename) of the last
  6930.               message saved by the user. Note that the REF# of last
  6931.               message saved for any external programs you may have written
  6932.               can be derived from the filespec of the message. For example:
  6933.  
  6934.                         Filespec: D:\MAGNUM\MSG_DIR\K\K1234567.890
  6935.                             Ref#:                     K1234567890
  6936.  
  6937.               Note that a CC (Carbon Copy) is not considered to be a
  6938.               message saved. In the case of saving a message with CC's,
  6939.               only the original message will be deemed to be the 'last
  6940.               message saved'.
  6941.  
  6942.        @U68 - the complete filespec (drive, path, filename) of the last
  6943.               file the user uploaded during THIS session. This variable
  6944.               is ideally used to pass this information to an external
  6945.               program right after the user performs a file upload. This
  6946.               can be accomplished with the POSTUP.BBS display file.
  6947.  
  6948.        @U69 - the current MessageBase the user is in.
  6949.  
  6950.        @U70 - the current FileBase the user is in.
  6951.  
  6952.        @U71 - Returns Y or N depending on whether the user's ID is reusable.
  6953.  
  6954.        @U72 - Returns user account type (U or M). U=user, M=mail.
  6955.  
  6956.        @U73 - Returns Y or N depending on if the user can use Remote Mail.
  6957.  
  6958.        @U74 - Returns the MSG GROUP assigned to this user (0-255).
  6959.  
  6960.        @U75 - Returns the FILE GROUP assigned to this user (0-255).
  6961.  
  6962.        @U76 - displays Y or N if the user is using a handle.
  6963.  
  6964.        @U77 - displays user's handle (if using a handle).
  6965.  
  6966.        @U78 - if user is using a handle, displays handle, else first name.
  6967.  
  6968.        @U79 - if user is using a handle, displays handle, else FULL name.
  6969.  
  6970.        @U80 - displays Y or N if the user has access to outside mail.
  6971.  
  6972.        @U81 - The user's internet id name (e-mail address).  This does NOT
  6973.               include the domain name (ie: john).
  6974.  
  6975.        @U82 - The user's complete internet id name (e-mail address)
  6976.               including the domain name (ie: john@mybbs.com).
  6977.  
  6978.  
  6979.  
  6980.  
  6981.  
  6982.  
  6983.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  6984.  
  6985.  
  6986.  
  6987.     Page  4-42              Customizing MAGNUM - Display Files/MILC Commands
  6988.                                                   View System Variables (@V)
  6989.  
  6990.  
  6991.  
  6992.                                    @V Command
  6993.  
  6994.     PURPOSE: Allows static information about the system/session to be viewed
  6995.              and/or passed to external programs.
  6996.      FROMAT: @Vx (where 'x' is the one of the system variables described
  6997.              below. These variables are generally viewed or assigned to a
  6998.              @Zx variable).
  6999.  
  7000.     System  related  information  can  be  used  to  pass  as information to
  7001.     external  programs.    These  variables  are  not  changeable  (most are
  7002.     changeable by "re-compiling" your STARTUP  files), which is why we  call
  7003.     it the VIEW command rather than something else).
  7004.  
  7005.     The @Vx command can be used much like the @Ux and @Ox command in that it
  7006.     can be  assigned to  a @Zx  variable.   The @Vx  commands are as follows
  7007.     (where 'x' is the static variable you wish to use):
  7008.  
  7009.        0 = Comport handle (ie: to pass to an external program such as an
  7010.            external file xfer program). NOTE: The comport handle is NOT
  7011.            automatically passed to child processes. To pass the handle, you
  7012.            will need to do two things:
  7013.              - Make the child process aware of the handle number by
  7014.                including the contents of @V0 on the command line:
  7015.                   @z1=v0;
  7016.              - The comport handle is automatically marked UN-INHERITABLE to
  7017.                child processes. The 128 bit of MILC variable @N0 is used to
  7018.                tell Magnum that the comport handle is to be inherited by
  7019.                your external child process. Simply OR the value 128 into the
  7020.                @N0 variable:
  7021.                   @n0=7; @n0=(n0|128);
  7022.                See the description of CHILDREN.BBS in the "Creating
  7023.                Subdirectories" portion of the manual.
  7024.        1-26 = The actual DIRECTORIES of file areas A thru Z, such that
  7025.               1=file directory A, 2=file directory B,...26=file directory Z.
  7026.       27-52 = The actual file DESCRIPTION strings for file areas A thru Z
  7027.               such that 27=file description A, ... 52=file description Z.
  7028.       53-78 = The actual message DESCRTIPTION strings for message conference
  7029.               areas A thru Z such that 53=message description A, ...
  7030.               78=message description Z.
  7031.          79 = The PROGRAM directory.
  7032.          80 = The SESSION directory.
  7033.          81 = The BULLETIN directory.
  7034.          82 = The MENU directory.
  7035.          83 = The HELP directory.
  7036.          84 = The DISPLAY directory.
  7037.          85 = The EXTERNAL directory.
  7038.          86 = The RJE directory (where RJE programs and menu(s) are).
  7039.          87 = The MESSAGE directory (parent directory only, there are 26
  7040.               subdirectories (A-Z) under this).
  7041.          88 = The WORK directory.
  7042.          89 = The USERS directory.
  7043.          90 = The SYSOUT directory.
  7044.  
  7045.  
  7046.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7047.  
  7048.  
  7049.  
  7050.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-43
  7051.     View System Variables (@V)
  7052.  
  7053.  
  7054.          91 = The RJE RESULTS directory (it's one of your FILE directories).
  7055.          92 = ACTIVITY.x handle (ie: to pass to an external program such as
  7056.               an external file xfer program). NOTE: The ACTIVITY.x handle is
  7057.               NOT automatically passed to child processes. To pass the
  7058.               handle, you will need to do two things:
  7059.              - Make the child process aware of the handle number by
  7060.                including the contents of @V92 on the command line:
  7061.                   @z1=v92;
  7062.              - The ACTIVITY.x handle is automatically marked UN-INHERITABLE
  7063.                to child processes. The 64 bit of MILC variable @N0 is used
  7064.                to tell Magnum that the ACTIVITY.x handle is to be inherited
  7065.                by your external child process. Simply OR the value 64 into
  7066.                the @N0 variable:
  7067.                   @n0=7; @n0=(n0|64);
  7068.                See the description of CHILDREN.BBS in the "Creating
  7069.                Subdirectories" portion of the manual.
  7070.              - NOTE: The child process inheriting this handle may use it for
  7071.                      WRITE-ONLY (the handle is not available for reading).
  7072.          93 = The PID (process identification number) of MSESSION.EXE
  7073.               for this session. The PID will be non-zero if this call is
  7074.               successful.
  7075.          94 = This variable holds the name of the current program (no path
  7076.               information, and no extension).  This will normally be
  7077.               MSESSION, however, if you're using an alternate language, the
  7078.               name might be something like MSES_GER or MSES_FRE, etc. This
  7079.               will allow you to query (via MILC commands) what language
  7080.               you're using.
  7081.          95 = Returns BBSID (for use with QWK).  Generally the last 8 digits
  7082.               of the serial# unless overriden (in the STARTUP file for that
  7083.               node) by the QWK_BBSID keyword and parm.
  7084.          96 - The system's internet domain name (ie: mybbs.com).
  7085.          97 - The system's [internet] timezone (ie: PST, PDT, EST, EDT, etc)
  7086.  
  7087.  
  7088.  
  7089.  
  7090.  
  7091.  
  7092.  
  7093.  
  7094.  
  7095.  
  7096.  
  7097.  
  7098.  
  7099.  
  7100.  
  7101.  
  7102.  
  7103.  
  7104.  
  7105.  
  7106.  
  7107.  
  7108.  
  7109.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7110.  
  7111.  
  7112.  
  7113.     Page  4-44              Customizing MAGNUM - Display Files/MILC Commands
  7114.                                                            Wait Command (@W)
  7115.  
  7116.  
  7117.  
  7118.                                       @W Command
  7119.  
  7120.     PURPOSE: Waits a specified number of miliseconds, then continues.
  7121.      FORMAT: @Wx
  7122.              where 'x' is the number of miliseconds to wait.
  7123.  
  7124.     The  WAIT  (or  pause)  command,  waits  'x' number of miliseconds, then
  7125.     continues.
  7126.  
  7127.     This command is useful in your GOODBYE.BBS file to create a pause while
  7128.     the modem empties its buffer to the user prior to disconnecting. For
  7129.     example, @W2000 will cause a delay of 2 seconds before proceeding - this
  7130.     is usually sufficient to empty the modem's buffer before ending the
  7131.     GOODBYE.BBS file.
  7132.  
  7133.  
  7134.  
  7135.  
  7136.  
  7137.  
  7138.  
  7139.  
  7140.  
  7141.  
  7142.  
  7143.  
  7144.  
  7145.  
  7146.  
  7147.  
  7148.  
  7149.  
  7150.  
  7151.  
  7152.  
  7153.  
  7154.  
  7155.  
  7156.  
  7157.  
  7158.  
  7159.  
  7160.  
  7161.  
  7162.  
  7163.  
  7164.  
  7165.  
  7166.  
  7167.  
  7168.  
  7169.  
  7170.  
  7171.  
  7172.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7173.  
  7174.  
  7175.  
  7176.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-45
  7177.     String (@Z) Commands (ie: String Logic, I/O, etc)
  7178.  
  7179.  
  7180.  
  7181.                                       @Z Command
  7182.  
  7183.     PURPOSE: String variable command. Performs string functions, screen I/O,
  7184.              and file writes.
  7185.     FORMATs: @Zx;             Prints contents of @Zx
  7186.              @Zx=Zy;          Assigns contents of @Zy to @Zx
  7187.              @Zx="string";    Assigns a string to @Zx (ie: @Z1="John";)
  7188.              @Zx('abc');      Get's remote user's input - restricts input to
  7189.                                'abc'
  7190.              @Zx(y);          Get's remote user's input - up to 'y' chars.
  7191.              @Zx=Ny;          Converts numeric variable @Ny to string,
  7192.                                assign to @Zx
  7193.              @Zx=Oy;          Assigns contents of @Oy to @Zx (See @O)
  7194.              @Zx=Uy;          Assigns contents of @Uy to @Zx (See @U)
  7195.              @Zx=Vy;          Assigns contents of @Vy to @Zx (See @V)
  7196.              @Zx(EXP);        Performs a string expression (concatenation)
  7197.              @Zx("string");   Writes "string" to disk, followed by contents
  7198.                                of @Zx
  7199.  
  7200.          where 'x' is the variable identifier (0 to 99), 'abc' are
  7201.          characters, EXP is a string expression, "string" is a character
  7202.          string, 'y' is a number.
  7203.  
  7204.     The @Zx  command is  a very  powerful command  in that  it performs many
  7205.     different tasks.  It  is capable of user  input, screen or file  output,
  7206.     performing string concatenations, conversion of @Nx (numeric)  variables
  7207.     to string, etc.
  7208.  
  7209.     There are 100 different string variables available (identified as @Z0 to
  7210.     @Z99).  Each one of these  is unique, and is capable of  storing strings
  7211.     of up to 112 characters each.
  7212.  
  7213.     Note that all @Z commands must end with the ';' (semicolon) character!
  7214.  
  7215.     Let's go through the different capabilities:
  7216.  
  7217.     DISPLAY THE CONTENTS OF A STRING VARIABLE:
  7218.  
  7219.        This is the simplest form of the @Z commands. Simply "@Zx;" (without
  7220.        quotes) where 'x' is the string variable (0 to 99) that you wish the
  7221.        contents displayed. If @Z5 had the string "John" in it, then the
  7222.        command
  7223.  
  7224.              @Z5;
  7225.  
  7226.        embedded anywhere within the file will display "John" (without
  7227.        quotes) on the remote user's screen.
  7228.  
  7229.     ASSIGNMENT TO A STRING VARIABLE:
  7230.  
  7231.        This is the next simplest form of the @Z command. Let's suppose that
  7232.        the numeric variable @Z4 had the value "Good Morning":
  7233.  
  7234.  
  7235.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7236.  
  7237.  
  7238.  
  7239.     Page  4-46              Customizing MAGNUM - Display Files/MILC Commands
  7240.                            String (@Z) Commands (ie: String Logic, I/O, etc)
  7241.  
  7242.  
  7243.  
  7244.             @Z1=Z4;      @Z2="John";
  7245.  
  7246.        In the above two examples, the contents of @Z4 (which we said was
  7247.        "Good Morning") is assigned to @Z1, therefore @Z1 and @Z4 now both
  7248.        contain the string "Good Morning". In the @Z2 assignment, the string
  7249.        "John" is being assigned to @Z2.
  7250.  
  7251.     GETTING REMOTE USER's STRING INPUT:
  7252.  
  7253.        The @Z command can ask the remote user to input a string or a single
  7254.        character. By way of example, let's demonstrate the two forms of
  7255.        string or single-character input:
  7256.  
  7257.            @Z5(20);    Accepts up to a 20-character string, assigns to @Z5
  7258.  
  7259.            @Z6('YN');  Accepts either the 'Y' or the 'N' character - nothing
  7260.                        else. Assigns the string "Y" or "N" to @Z6.
  7261.  
  7262.        As a working example, let's ask the user for their favorite sport:
  7263.  
  7264.               What is your favorite sport => @Z1(20);
  7265.  
  7266.        This would print "What is your favorite sport => " and wait for the
  7267.        user to enter a response of up to 20 characters. When the user
  7268.        presses his ENTER (or C/R) key, whatever they typed will be assigned
  7269.        to string variable @Z1. Note that responses are always required!
  7270.  
  7271.        Many times, you'll be offering the user a choice (Y/N) or a menu
  7272.        selection that requires a single-character response. For example:
  7273.  
  7274.               Are you sure (Y/N) => @Z1('yn');
  7275.  
  7276.        would print "Are you sure (Y/N) => " on the user's screen, then wait
  7277.        for the user to respond with 'y' or 'n' before continuing. Note that
  7278.        upper/lowercase is not important - 'y' is the same as 'Y' as far as
  7279.        the system is concerned. Also note that if the user's environment
  7280.        settings is set for single-character responses, the system will not
  7281.        wait for them to press ENTER (or C/R) before continuing, otherwise
  7282.        their single-character response will not be processed until they
  7283.        press ENTER (or C/R). In the above example, the user's response will
  7284.        be stored as a single-character string in variable @Z1. Note that we
  7285.        will use double quotes (" ") to denote strings, and single quotes
  7286.        (' ') to denote single characters.
  7287.  
  7288.        In a menu or multiple choice type of situation, the following might
  7289.        be found:
  7290.  
  7291.                A) True
  7292.                B) False
  7293.                C) Could go either way
  7294.                D) I don't know
  7295.  
  7296.  
  7297.  
  7298.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7299.  
  7300.  
  7301.  
  7302.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-47
  7303.     String (@Z) Commands (ie: String Logic, I/O, etc)
  7304.  
  7305.  
  7306.             Enter your choice => @Z2('abcd');
  7307.  
  7308.        You are not limited by alphabetic characters either, the above could
  7309.        be represented with single-digit numbers as well:
  7310.  
  7311.                1) True
  7312.                2) False
  7313.                3) Could go either way
  7314.                4) I don't know
  7315.  
  7316.             Enter your choice => @Z2('1234');
  7317.  
  7318.        Or it could contain a mixture:
  7319.  
  7320.                A) Some of the time      1) Skip this question
  7321.                B) Most of the time      2) Quit, return to system
  7322.                C) None of the time
  7323.                D) All of the time
  7324.  
  7325.             Enter your choice => @Z2('abcd12');
  7326.  
  7327.  
  7328.     CONVERTING A NUMERIC VARIABLE (@Nx) TO STRING:
  7329.  
  7330.        The @Zx command is capable of converting a numeric variable to
  7331.        string. Suppose that @N2 had the numeric value of 365:
  7332.  
  7333.               @Z5=N2;
  7334.  
  7335.        In the above example, the numeric variable @N2 has a value of 365.
  7336.        This is converted to the string "365" and assigned to string variable
  7337.        @Z5.
  7338.  
  7339.     GETTING MISCELLANEOUS SYSTEM OR USER INFORMATION:
  7340.  
  7341.        The @Zx command can also be assigned any of the @Ox, @Ux or @Vx
  7342.        strings. See @O, @U, @V commands for their parameters. For example:
  7343.  
  7344.            @Z1=O10;    assigns the user's age (as a string) to string
  7345.                        variable @Z1
  7346.  
  7347.        Remember that the @Nx (numeric) variables cannot obtain any @O or @U
  7348.        values. @Nx values can only obtain those values from @Zx variables:
  7349.  
  7350.            @Z1=O10;  @N1=Z1;
  7351.  
  7352.        This assigns the user's age to string variable @Z1, then converts the
  7353.        numeric string in @Z1 to numeric for assignment to @N1.
  7354.  
  7355.  
  7356.     PERFORMING STRING CONCATENATION:
  7357.  
  7358.        String concatenation is simply taking two strings, and combining them
  7359.  
  7360.  
  7361.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7362.  
  7363.  
  7364.  
  7365.     Page  4-48              Customizing MAGNUM - Display Files/MILC Commands
  7366.                            String (@Z) Commands (ie: String Logic, I/O, etc)
  7367.  
  7368.  
  7369.        into one - as long as the resultant string is 112 characters or less.
  7370.  
  7371.        Examples:
  7372.  
  7373.              Suppose that @Z1 contained the string "Bed":
  7374.  
  7375.                  @Z1=(Z1+" time");     would result in @Z1 containing
  7376.                                        "Bed time".
  7377.  
  7378.              or
  7379.  
  7380.                  @Z1=(Z1+"time");      would reslut in @Z1 containing
  7381.                                        "Bedtime".
  7382.  
  7383.              Suppose that @Z1 contains "John", and @Z2 contains
  7384.              "is 25 years old":
  7385.  
  7386.                  @Z3=(Z1+Z2);          would result in "Johnis 25 years old"
  7387.  
  7388.              You might need 2 steps in that case:
  7389.  
  7390.                  @Z3=(Z1+" "); @Z3=(Z3+Z2); would result in
  7391.                  "John is 25 years old"
  7392.  
  7393.     WRITING THE @Zx VARIABLE TO DISK:
  7394.  
  7395.        With all the power of the @Zx command, it would certainly be a shame
  7396.        if there were no way to write the contents of some of the variables
  7397.        to disk. This is handy with such files as Questionairres. To write
  7398.        the contents of a @Zx variable to disk, simply:
  7399.  
  7400.                @Z5("Favorite Sport: ");
  7401.  
  7402.        Assuming @Z5 contained the string variable "swimming", the above
  7403.        command would write the following line to a disk file:
  7404.  
  7405.                Favorite Sport: swimming
  7406.  
  7407.        Basically, writing either a @Zx or @Nx variable to disk is the same.
  7408.  
  7409.        The format for @Zx variables are:  @Zx("string");
  7410.        The format for @Nx variables are:  @Nx("string");
  7411.  
  7412.        where 'x' is the number of the string or numeric variable you want
  7413.        written, and "string" is any descriptive string you want (as an aid
  7414.        in telling you what you've written).
  7415.  
  7416.        See the @N command "Writing the @Nx VARIABLE TO DISK" section for
  7417.        more examples and an explanation of what files actually get written
  7418.        to.
  7419.  
  7420.  
  7421.  
  7422.  
  7423.  
  7424.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7425.  
  7426.  
  7427.  
  7428.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-49
  7429.     Character Display - @\ command.
  7430.  
  7431.  
  7432.                                    @\ Command
  7433.  
  7434.     PURPOSE: Force display of a character.
  7435.      FORMAT: @\x             Displays character equivalent of 'x'.
  7436.  
  7437.     The IBM character set contains 256  characters (values 0 to 255).   Note
  7438.     that if  you're using  a 7  databit setup  only characters  0 to 127 are
  7439.     available, however, 99% of all BBSs are running an 8 databit setup.
  7440.  
  7441.     Unfortunately, many of you are limited as to what characters can  appear
  7442.     in your display files by the characters which are on your keyboard.  For
  7443.     example, there's  no BEL  character on  your keyboard  (sends an audible
  7444.     beep to the remote user).  This is where the @\x command comes in.   The
  7445.     command:
  7446.  
  7447.          @\7
  7448.  
  7449.     sends a BEL character to the screen (and comport).  Other examples:
  7450.  
  7451.          @\13    CR (carriage return)
  7452.          @\10    LF (line feed)
  7453.  
  7454.     Valid values  are @\0  through @\255  exluding the  @\17 (XON)  and @\19
  7455.     (XOFF) equivalents.  If @\x has a negative value, or a value of 17,  19,
  7456.     or greater than 255, then the statement is ignored.
  7457.  
  7458.     Note that the number used as 'x' in a @\x statement is terminated by the
  7459.     first  non-digit.    Therefore,  if  you  wanted  to a display a numeric
  7460.     character  following  a  BEL  (@\7)  such  as  the  number  10, then the
  7461.     statement @\710 will NOT work.  One alternative around this might be the
  7462.     following:
  7463.  
  7464.          @N2=10; @\7@n2;
  7465.  
  7466.     or
  7467.  
  7468.          @N2=10; @\7@\[2]  (See "Indirect Addressing" later in this chapter)
  7469.  
  7470.     Using the  advanced features  of Indirect  Addressing (explained  on the
  7471.     pages of this chapter entitled  "Advanced MILC Command Usage -  Indirect
  7472.     Addressing"),  the  following  example  demonstrates  how to display the
  7473.     entire character set:
  7474.  
  7475.          @N5=0;
  7476.          @P0 @\[5+] @B0(N5<256);
  7477.  
  7478.     NOTE: The @\x command is available to ALL users, and is NOT part of the
  7479.           MILC_CMDS field of each user's record.
  7480.  
  7481.  
  7482.  
  7483.  
  7484.  
  7485.  
  7486.  
  7487.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7488.  
  7489.  
  7490.  
  7491.     Page  4-50              Customizing MAGNUM - Display Files/MILC Commands
  7492.                           "Sysop Only" MILC commands: @$x, @&x, @!x, and @?x
  7493.  
  7494.  
  7495.     Four MILC commands are designated "sysop use only".   These are not part
  7496.     of the  MILC_CMDS field  of any  user record  including the  sysop.  The
  7497.     commands perform the following functions:
  7498.  
  7499.        @$x - Save @Zx and @Nx values to a file in MBBSEXEC format
  7500.        @&x - Restore @Zx and @Nx values from a file in MBBSEXEC format.
  7501.        @!x - Delete a file.
  7502.        @?x - Check for file existence.
  7503.  
  7504.            @$x - Save @Zx and @Nx values to a file in MBBSEXEC format
  7505.  
  7506.     This command will save the values of all of the @Zx and @Nx variables in
  7507.     a  file  compatible  with  MBBSEXEC  format  (see  MBBSEXEC  -  Advanced
  7508.     section).  The 'x'  refers to which @Zx  variable holds the filename  to
  7509.     save to. Example:
  7510.  
  7511.        @Z5="milcvar.val";
  7512.        @$5
  7513.  
  7514.         @&x - Restore @Zx and @Nx values from a file in MBBSEXEC format
  7515.  
  7516.     This command will restore the values of all of the @Zx and @Nx variables
  7517.     from a  file compatible  with MBBSEXEC  format (see  MBBSEXEC - Advanced
  7518.     section).  The 'x'  refers to which @Zx  variable holds the filename  to
  7519.     restore from.  Example:
  7520.  
  7521.        @Z5="milcvar.val";
  7522.        @&5
  7523.  
  7524.                                @!x - Delete File
  7525.  
  7526.     This command will delete a file.   The 'x' refers to which  @Zx variable
  7527.     holds the filename to delete.  Example:
  7528.  
  7529.        @Z5="milcvar.val";
  7530.        @!5
  7531.  
  7532.                          @?x - Check for File Existence
  7533.  
  7534.     This  command  tests  for  the  existence  of  a  file.    The  filename
  7535.     ([d:][path]filename[.ext]) to test is in  @Zx.  The result is  placed in
  7536.     @N0 (1=exists, 0=does not exist). Example:
  7537.  
  7538.              @Z5="d:\magnum\testfile.ext";
  7539.              @?5 @b1(n0=1); The file does NOT exist! @c16
  7540.              @p1 The file DOES exist!
  7541.  
  7542.     These four MILC commands  (@$x, @&x, @!x, and  @?x) can be used  to pass
  7543.     the values of the @Zx and @Nx variables to MBBSEXEC with (see MBBSEXEC -
  7544.     Advanced Section).   The  @Nx variables  in MSESSION  correlate with the
  7545.     @TALLYx variables in MBBSEXEC.  The @Zx variables in MSESSION  correlate
  7546.     with  the  @STRINGx  variables  in  MBBSEXEC.    See the SAVE_DATA() and
  7547.     RESTORE_DATA() commands in the advanced section of MBBSEXEC.
  7548.  
  7549.  
  7550.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7551.  
  7552.  
  7553.  
  7554.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-51
  7555.     "Sysop Only" MILC commands: @$x, @&x, @!x, and @?x
  7556.  
  7557.  
  7558.  
  7559.     These four MILC commands  (@$, @&x, @!x, and  @?x) are available to  the
  7560.     Sysop only.  This means that any message in the message database wishing
  7561.     to  utilize  these  commands  must  have  the  Sysop  (ID:    /0) as the
  7562.     originator of the  message.  All  other display files  may contain these
  7563.     commands since those  files must have  been created locally  anyway (ie:
  7564.     external menus, help screens,  HELLO?.*, SEC*.*, etc).   These commands,
  7565.     as with all  other MILC commands  will have no  effect if included  in a
  7566.     file  being  viewed  from  the  File  section's  "[A]ccess Arc/Zip file"
  7567.     function or "[R]ead Ascii File".
  7568.  
  7569.  
  7570.  
  7571.  
  7572.  
  7573.  
  7574.  
  7575.  
  7576.  
  7577.  
  7578.  
  7579.  
  7580.  
  7581.  
  7582.  
  7583.  
  7584.  
  7585.  
  7586.  
  7587.  
  7588.  
  7589.  
  7590.  
  7591.  
  7592.  
  7593.  
  7594.  
  7595.  
  7596.  
  7597.  
  7598.  
  7599.  
  7600.  
  7601.  
  7602.  
  7603.  
  7604.  
  7605.  
  7606.  
  7607.  
  7608.  
  7609.  
  7610.  
  7611.  
  7612.  
  7613.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7614.  
  7615.  
  7616.  
  7617.     Page  4-52              Customizing MAGNUM - Display Files/MILC Commands
  7618.                            Advanced MILC Command Usage - Indirect Addressing
  7619.  
  7620.  
  7621.           Advanced MILC Command Usage - Indirect Addressing (Indexing)
  7622.  
  7623.     The  MILC  command  language  includes  an  advanced feature known among
  7624.     programmers as  "indirect addressing"  (or "indexing").   If  you are  a
  7625.     programmer, or if  your company has  programmers, this section  might be
  7626.     best left to them.
  7627.  
  7628.     NOTE: Please have a thorough understanding of the MILC command language
  7629.           prior to using indirect addressing!
  7630.  
  7631.     Nearly every MILC command  is of the format  @Xn (where '@' is  the MILC
  7632.     command character,  'X' is  the command  group, and  'n' is  the command
  7633.     function or variable number).   Indirect addressing eliminates  the need
  7634.     to specify 'n' directly.  By  means of example, lets suppose you  wanted
  7635.     to display the values  of ALL of the  @Ux variables, one per  text line.
  7636.     Up until now, the only way to do this was as follows:
  7637.  
  7638.         0 : @U0
  7639.         1 : @U1
  7640.         .
  7641.         .
  7642.         .
  7643.         75 : @U75
  7644.  
  7645.     The above  would take  76 message  lines (or  76 display  file lines) to
  7646.     accomplish the task of displaying @Ux variable contents from @U0 through
  7647.     @U75.  The following example  demonstrates how to perform the  same task
  7648.     with indirect addressing:
  7649.  
  7650.         @N5=0;
  7651.         @P0 @N5; : @U[N5]
  7652.         @N5=(N5+1); @B0(N5<76);
  7653.  
  7654.     Note that in the above statements, we've introduced brackets '[' and ']'
  7655.     after the @U variable.  In the past, @U had to be followed by the number
  7656.     of which @U  variable you wanted.   With brackets,  the contents of  the
  7657.     brackets tell  Magnum to  get this  number from  the @N5  variable.  The
  7658.     first time through the loop, @N5  contains 0 (zero), so @U[N5] would  be
  7659.     identical to @U0.   The second time through  the loop, @N5 contains  the
  7660.     value of 1, so @U[N5] would be  identical to @U1, and so on.   Note that
  7661.     there are  two acceptible  ways of  indirect addressing.   Assuming  the
  7662.     value is in  variable @N5 (indirect  addressing ALWAYS references  a @Nx
  7663.     variable), the following two statements are identical:
  7664.  
  7665.         @U[N5];   @U[5];
  7666.  
  7667.     We chose  to use  the @U[N5]  method above  for your  convenience.   Our
  7668.     prefered method would be @U[5].
  7669.  
  7670.     Keep  in  mind  that  the  above  examples  used  the @Ux variables with
  7671.     indirect addressing, however,  idirect addressing can  be used with  any
  7672.     MILC variable that expects the command-group character to be followed by
  7673.     the variable number or command function.
  7674.  
  7675.  
  7676.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7677.  
  7678.  
  7679.  
  7680.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-53
  7681.     Advanced MILC Command Usage - Indirect Addressing
  7682.  
  7683.  
  7684.  
  7685.                        EXCEPTIONS TO INDIRECT ADDRESSING:
  7686.  
  7687.     YOU CANNOT INDIRECTLY ADDRESS MILC VARIABLES WHICH:
  7688.  
  7689.           1) Appear within parenthesis
  7690.           2) Appear to the right of an = (assignment) sign.
  7691.           3) The @Px MILC variable cannot be indirectly addressed
  7692.           4) The @Ix@Zy statement: The @Zy portion cannot be indirectly
  7693.              addressed.
  7694.  
  7695.     The following demonstrates some correct and incorrect usage of indirect
  7696.     addressing:
  7697.  
  7698.            @U[12]          CORRECT
  7699.            @B[17](0=0);    CORRECT
  7700.            @N5=Z[3];       INCORRECT (brackets illegal on right of '=')
  7701.            @Z5=(Z[2]+Z4);  INCORRECT (within parenthesis and right of '=')
  7702.            @\[14]          CORRECT
  7703.  
  7704.     Indirect addressing comes in most handy when building jump tables.   For
  7705.     example:
  7706.  
  7707.           1 - Today's News
  7708.           2 - Stock Quotes
  7709.           3 - Online Shopper
  7710.  
  7711.           0 - Quit, Return to BBS
  7712.  
  7713.                  Choice (1,2,3,0) => @N5(0,3); @B[5];
  7714.  
  7715.           @P1             - - - Today's News - - -
  7716.           .
  7717.           .
  7718.           . @C16
  7719.           @P2             - - - Stock Quotes - - -
  7720.           .
  7721.           .
  7722.           . @C16
  7723.           @P3             - - - Online Shopper - - -
  7724.           .
  7725.           .
  7726.           . @C16
  7727.           @P0 @C16
  7728.  
  7729.     The same rules of a terminating semicolon (;) still apply for those MILC
  7730.     command which  require the  terminating semicolon  (ie:   @B, @N, and @Z
  7731.     statements).
  7732.  
  7733.  
  7734.  
  7735.  
  7736.  
  7737.  
  7738.  
  7739.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7740.  
  7741.  
  7742.  
  7743.     Page  4-54              Customizing MAGNUM - Display Files/MILC Commands
  7744.                   Advanced MILC Command Usage - Enhanced Indirect Addressing
  7745.  
  7746.  
  7747.                           Enhanced Indirect Addressing
  7748.  
  7749.     Indirect addressing  was explained  on the  preceding pages.   Now we'll
  7750.     introduce what we call "Enhanced Indirect Addressing".
  7751.  
  7752.     If you're familiar with the  C programming language, you know  about the
  7753.     ++  and  --  operations  on  a  variable  (ie:    x++, --x, etc).  We've
  7754.     incorporated a similar operation in Enhanced Indirect Addressing.
  7755.  
  7756.     By way of example, here's how Enhanced Indirect Addressing works:
  7757.  
  7758.          @U[+5]  -- Increments the contents of @N5 prior to processing the
  7759.                     statement. If @N5 had the value 15, then this statement
  7760.                     would be identical to the statements: @N5=(N5+1); @U16
  7761.  
  7762.          @U[-5]  -- Decrements the contents of @N5 prior to processing the
  7763.                     statement. If @N5 had the value 15, then this statement
  7764.                     would be identical to the statements: @N5=(N5-1); @U14
  7765.  
  7766.          @U[5+]  -- Increments the contents of @N5 AFTER processing the
  7767.                     statement. If @N5 had the value 15, then this statement
  7768.                     would be identical to the statemnts: @U15 @N5=(N5+1);
  7769.  
  7770.          @U[5-]  -- Decrements the contents of @N5 AFTER processing the
  7771.                     statement. If @N5 had the value 15, then this statement
  7772.                     would be identical to the statements: @U15 @N5=(N5-1);
  7773.  
  7774.     Note that @U[+5] could also be denoted as @U[+N5].  The concept of the +
  7775.     and - symbols either prefixing or suffixing the value stems from the  ++
  7776.     and -- operations in the C programming language.
  7777.  
  7778.     The new, enhanced ability to increment/decrement the contents of the @Nx
  7779.     variable being referenced within brackets would replace the following:
  7780.  
  7781.           @N5=0;
  7782.           @P1 @U[5] @N5=(N5+1);
  7783.           @B1(N5<67);
  7784.  
  7785.     with:
  7786.  
  7787.           @N5=0;
  7788.           @P1 @U[5+]
  7789.           @B1(N5<67);
  7790.  
  7791.     and of course, both of the above methods are shorthand for:
  7792.  
  7793.           @U0
  7794.           @U1
  7795.           @U2
  7796.           .
  7797.           .
  7798.           .
  7799.           @U66
  7800.  
  7801.  
  7802.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7803.  
  7804.  
  7805.  
  7806.     Customizing MAGNUM - Display Files/MILC Commands              Page  4-55
  7807.     Advanced MILC Command Usage - Enhanced Indirect Addressing
  7808.  
  7809.  
  7810.  
  7811.     The  ability  to  increment/decrement  the  contents of the @Nx variable
  7812.     being  referenced  in  brackets  also  has  one additional feature - the
  7813.     ability to specify both a prefix and a suffix!  For example:
  7814.  
  7815.           @N5=1;
  7816.           @U[+5+]
  7817.  
  7818.     would be the equivalent of:
  7819.  
  7820.           @N5=1;
  7821.           @N5=(N5+1); @U2 @N5=(N5+1);
  7822.  
  7823.     In either case, the value of @N5 would be 3 when complete.
  7824.  
  7825.     Other valid examples:
  7826.  
  7827.           @U[5]
  7828.           @U[5+]
  7829.           @U[5-]
  7830.           @U[+5]
  7831.           @U[-5]
  7832.           @U[+5+]
  7833.           @U[+5-]
  7834.           @U[-5-]
  7835.           @U[-5+]
  7836.  
  7837.     Of course, these are  not limited to @Ux  variables, nor is the  bracket
  7838.     reference limited to 5 - we merely chose this for illustrative purposes.
  7839.  
  7840.     Here's  one  additional  example  which  demonstrates how to display the
  7841.     entire character set using what you've just learned:
  7842.  
  7843.           @N5=0;
  7844.           @P0 @\[5+] @B0(N5<256);
  7845.  
  7846.     And as a friendly reminder, indirect addressing (the use of '[' and ']')
  7847.     is NOT available for MILC  variables appearing within parenthesis or  on
  7848.     the right side of an assignment (=) statement.
  7849.  
  7850.  
  7851.  
  7852.  
  7853.  
  7854.  
  7855.  
  7856.  
  7857.  
  7858.  
  7859.  
  7860.  
  7861.  
  7862.  
  7863.  
  7864.  
  7865.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7866.  
  7867.  
  7868.  
  7869.  
  7870.  
  7871.  
  7872.  
  7873.  
  7874.  
  7875.  
  7876.  
  7877.  
  7878.  
  7879.  
  7880.  
  7881.  
  7882.  
  7883.  
  7884.  
  7885.  
  7886.  
  7887.  
  7888.  
  7889.  
  7890.  
  7891.  
  7892.  
  7893.  
  7894.  
  7895.  
  7896.  
  7897.  
  7898.                          This Page Intentionally Blank
  7899.  
  7900.  
  7901.  
  7902.     MAGNUM's Sysop Console                                         Page  5-1
  7903.     Intro
  7904.  
  7905.  
  7906.     MAGNUM's sysop console (the parent process) - the program entitled MBBS,
  7907.     should be blown up to a full-size screen for this chapter.
  7908.  
  7909.     You've probably already guessed at certain portions of the display,  but
  7910.     basically MAGNUM's sysop  display shows you  a brief summary  of what is
  7911.     going on in  the system and  on each node.   For instance,  the date and
  7912.     time displayed above the [Node01] line is always accurate.  On the  same
  7913.     line, you will see  numbers on the far  right if/when someone is  logged
  7914.     on.  Assuming the 4-node version (node 4 is the conosle/local node),  if
  7915.     there is a user on node 1 and 2 for example, you will see "1,2" (without
  7916.     the quotes).  If  you're logged on locally,  you will see <4>  (in angle
  7917.     brackets  to  indicate  "local  logon")  if  you log on locally with the
  7918.     command:   "* logon".   However,  if you  log onto  node 2  locally (for
  7919.     example) with:  "* logon 2" command, you'll see <2> instead.  Note  that
  7920.     your serial# appears on the same line as the "Node01" title.
  7921.  
  7922.     On  the  line  containing  the  "Magnum  BBS  (r)  "  and  serial number
  7923.     information, a red asterisk (*) will now appear right after the  "Magnum
  7924.     BBS (r)  " portion  to indicate  if anyone  has entered  any mail to the
  7925.     Sysop since the Sysop's last logon.  The red asterisk will remain  until
  7926.     the  Sysop  logs  on.    Once  the  Sysop logs on, the the asterisk will
  7927.     disappear regardless of whether  the Sysop reads any  mail or not.   The
  7928.     red asterisk will re-appear if new mail addressed to the Sysop arrives.
  7929.  
  7930.     The Sysop display console (the MBBS.EXE program) displays 3 sessions  at
  7931.     a  time.   Initially,  the  sessions  for Node01, Node02, and Node03 are
  7932.     displayed on the screen.   To see other  sessions, use the TOP  command.
  7933.     In other words, if  you have our 9-node  version (8 comport +  console),
  7934.     you could enter the command "4 TOP" (without quotes) and Node04 would be
  7935.     brought to the top of the  display - sessions Node04, Node05 and  Node06
  7936.     would be displayed.   In the 4-node version  (3 comports + console),  "2
  7937.     TOP" and "1 TOP"  are the only acceptable  commands.  The first  line of
  7938.     each shows  whether the  line is  ACTIVE (waiting  for calls or announce
  7939.     only), or INACTIVE (shut down or not  operating), or who is on.  If  you
  7940.     just started the MBBS.EXE program, the next 2 lines of each screen  will
  7941.     be blank, otherwise, if someone is  online, line 2 will show some  brief
  7942.     info about them, while line 3 will show where they are in the system and
  7943.     what they're doing.   If no  one is on  an active line,  the system will
  7944.     show who was last  on, when they called  and how long they  were on for.
  7945.     By the way, the "how long they were on for" (in minutes) will change  to
  7946.     0 (zero) if someone tried to call the board but didn't successfully  log
  7947.     on since the last successful caller, or if carrier was dropped.
  7948.  
  7949.     The "Command => " prompt is where you interact with MAGNUM to do  things
  7950.     like turn  the bell  on/off, force  a user  off, shutdown  the bbs, turn
  7951.     on/off the printer, etc.  You can only get to this prompt by hitting one
  7952.     of 11 keys:  a digit (0 to 9) or an asterisk (*).  If you press a digit,
  7953.     it should be the digit of the node you wish the command to apply to  (or
  7954.     the first digit of a 2-digit node).  If you press *, the command applies
  7955.     to all nodes (except local logon).
  7956.  
  7957.     IMPORTANT: When entering a command, MAGNUM assumes high-priority and
  7958.                DOES NOT process incomming calls or any other obligations
  7959.  
  7960.  
  7961.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  7962.  
  7963.  
  7964.  
  7965.     Page  5-2                                         MAGNUM's Sysop Console
  7966.                                                                        Intro
  7967.  
  7968.  
  7969.                until you have finished entering your command. Therefore,
  7970.                USE THE COMMAND PROMPT AS QUICKLY AS POSSIBLE!! If you hit a
  7971.                digit or * and walk away, you have effectively frozen your
  7972.                BBS - currently running sessions are not affected but no more
  7973.                incoming calls or events (ACE commands) will be processed!
  7974.     The remainder of this chapter will deal with the commands you can  enter
  7975.     as sysop at MAGNUM's Sysop Command prompt.
  7976.  
  7977.  
  7978.  
  7979.  
  7980.  
  7981.  
  7982.  
  7983.  
  7984.  
  7985.  
  7986.  
  7987.  
  7988.  
  7989.  
  7990.  
  7991.  
  7992.  
  7993.  
  7994.  
  7995.  
  7996.  
  7997.  
  7998.  
  7999.  
  8000.  
  8001.  
  8002.  
  8003.  
  8004.  
  8005.  
  8006.  
  8007.  
  8008.  
  8009.  
  8010.  
  8011.  
  8012.  
  8013.  
  8014.  
  8015.  
  8016.  
  8017.  
  8018.  
  8019.  
  8020.  
  8021.  
  8022.  
  8023.  
  8024.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8025.  
  8026.  
  8027.  
  8028.     MAGNUM's Sysop Console                                         Page  5-3
  8029.     The Bell, Forceoff, Switch and Info Commands
  8030.  
  8031.  
  8032.  
  8033.                                  x bell|nobell
  8034.  
  8035.     Sometimes the sound of bells can become rather annoying.  MAGNUM sends a
  8036.     BEL character to the remote user when it doesn't like something, or when
  8037.     it needs to alert the remote user of something.  This BEL is also echoed
  8038.     at the sysop console.  To turn it off for, say Node01, you would enter:
  8039.  
  8040.          1 NOBELL
  8041.  
  8042.     To turn it on, enter:
  8043.  
  8044.          1 BELL
  8045.  
  8046.     Note that turning the bell on and off does not affect the remote  user's
  8047.     end.  The remote user will always hear the bell.
  8048.  
  8049.                                    x forceoff
  8050.  
  8051.     You can FORCE  a user off  anytime you wish.   All this  command does is
  8052.     emulate a  dropped carrier  on whatever  node you  use it  on.  The user
  8053.     could call back immediately if they wanted  to.  To force a user off  of
  8054.     node 2, for example, you would enter the command:
  8055.  
  8056.         2 forceoff
  8057.  
  8058.     The system will act  as though the user  dropped carrier (hung up),  and
  8059.     reset itself for the next caller on that node.
  8060.  
  8061.                                     x switch
  8062.  
  8063.     You can snoop  on any session  in progress by  switching to it.   When a
  8064.     session starts (with the exception of a local logon), the session starts
  8065.     at your end as an icon.  For example, if you wanted to snoop on the user
  8066.     on node 1, you would enter:
  8067.  
  8068.         1 Switch
  8069.  
  8070.     This would blow up the icon into a window or full text screen (depending
  8071.     on how MSESSION.EXE is  marked to start).   You can also switch  to that
  8072.     session by double clicking the mouse pointer on that session's icon.
  8073.  
  8074.     Snooping  on  someeone  performing  a  file  transfer (ie:  making their
  8075.     session the foreground process so  that you can see what  they're doing)
  8076.     will result in a temporary boost in priority to that foregroung process!
  8077.     This can also slow down other sessions!
  8078.  
  8079.     Remember  that  anytime  you  snoop  on  a  session,  it  will receive a
  8080.     temporary boost in priority by OS/2, thus causing a slight slowdown  for
  8081.     all other sessions (this is more of a concern for users of OS/2 1.x than
  8082.     2.x).  File transfer does large block writes and reads to and from  your
  8083.     modem (ie:  1K  blocks) which can cause  slowdown in performance of  the
  8084.     other sessions if you snoop on someone doing a file transfer (make  them
  8085.  
  8086.  
  8087.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8088.  
  8089.  
  8090.  
  8091.     Page  5-4                                         MAGNUM's Sysop Console
  8092.                                 The Bell, Forceoff, Switch and Info Commands
  8093.  
  8094.  
  8095.     the foreground process).
  8096.  
  8097.     Because of this temporary boost in priority for foreground processes, we
  8098.     recommend running your local (console) node at a priority less than that
  8099.     of any other node.
  8100.  
  8101.                                      x Info
  8102.  
  8103.     The INFO command  shows information about  NODEx.  It  shows whether the
  8104.     bell is on or  off (beeping echoed to  console), whether the printer  is
  8105.     enabled or disabled, whether normal or announce-only mode is used.  Also
  8106.     shown is  the serial  number and  the node  numbers of  all active ports
  8107.     (nodes), the  device name  associated with  NODEx and  whether or  not a
  8108.     SHUTDOWN is scheduled  for node x.  If a shutdown  is scheduled for  all
  8109.     nodes it will be  shown here.  As  always, whenever you are  executing a
  8110.     command, the parent  "freezes" (won't respond  to incoming calls)  until
  8111.     the command is completed.  In this case, a display is presented and  you
  8112.     are prompted to strike a key  to clear the display - the  parent remains
  8113.     "frozen" until you clear the display  by striking a key.  Note  that the
  8114.     display for the "info" command takes place on the bottom 6 lines of  the
  8115.     display screen/window.
  8116.  
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  
  8123.  
  8124.  
  8125.  
  8126.  
  8127.  
  8128.  
  8129.  
  8130.  
  8131.  
  8132.  
  8133.  
  8134.  
  8135.  
  8136.  
  8137.  
  8138.  
  8139.  
  8140.  
  8141.  
  8142.  
  8143.  
  8144.  
  8145.  
  8146.  
  8147.  
  8148.  
  8149.  
  8150.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8151.  
  8152.  
  8153.  
  8154.     MAGNUM's Sysop Console                                         Page  5-5
  8155.     The "* auto" and "* noauto" commands
  8156.  
  8157.  
  8158.                             "* auto" and "* noauto"
  8159.  
  8160.        * AUTO - Automatically switches to a session when a remote session is
  8161.                 started (regardless of node). This command might be
  8162.                 considered useful for those sysops running a single-node
  8163.                 BBS, whereas those running a multi-node BBS might find this
  8164.                 command to be disruptive.
  8165.  
  8166.        * NOAUTO - As before, only a local logon will be switched to
  8167.                   automatically, all other nodes must be switched to by
  8168.                   either the "x switch" command or by double clicking on the
  8169.                   session's icon with the mouse pointer. This is the startup
  8170.                   default. To make "* AUTO" the default, you can have it as
  8171.                   an "immediate" command in your ACE file.
  8172.  
  8173.        Note: Refer to the chapter on ACE (automatic command execution) -
  8174.              Magnum's event handler.
  8175.  
  8176.  
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  
  8182.  
  8183.  
  8184.  
  8185.  
  8186.  
  8187.  
  8188.  
  8189.  
  8190.  
  8191.  
  8192.  
  8193.  
  8194.  
  8195.  
  8196.  
  8197.  
  8198.  
  8199.  
  8200.  
  8201.  
  8202.  
  8203.  
  8204.  
  8205.  
  8206.  
  8207.  
  8208.  
  8209.  
  8210.  
  8211.  
  8212.  
  8213.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8214.  
  8215.  
  8216.  
  8217.     Page  5-6                                         MAGNUM's Sysop Console
  8218.                                        The level, print and lockout commands
  8219.  
  8220.  
  8221.  
  8222.                                   x level yyyy
  8223.  
  8224.     While someone is  actively online, you  can change their  security level
  8225.     with this command.  For example, if you wish to change the user on  node
  8226.     1 to a security level of 50, you would enter the following:
  8227.  
  8228.         1 LEVEL 50
  8229.  
  8230.     MAGNUM would then give you a message as to the success of the command.
  8231.  
  8232.                                     x print
  8233.  
  8234.     MAGNUM automatically keeps  a log of  activity for each  node in a  file
  8235.     called  ACTIVITY.x  (where x  is the  node number  in which  activity is
  8236.     being recorded).  This file grows substantially with time so you'll want
  8237.     to back it up if desired and delete it from time to time.  Note that  if
  8238.     you view the  activity log from  MAGNUM's sysop menu  when you're logged
  8239.     on,  you  will  be  viewing  the  log  backwards (most recent activities
  8240.     first).
  8241.  
  8242.     You may elect to simultaneously log to your printer what is happening on
  8243.     a given node as well as to this activity-log file.  To start doing  this
  8244.     for node 1, for example, enter:
  8245.  
  8246.        1 print
  8247.  
  8248.     To turn it off for node 1, enter:
  8249.  
  8250.        1 noprint
  8251.  
  8252.     If running MAGNUM as a multinode  system (more than 1 active node),  and
  8253.     printing  to  the  same  printer  for  both  nodes,  you need to use the
  8254.     spooler.   Be advised  the spooler  uses MUCH  RAM MEMORY,  and in  some
  8255.     cases, there may not be enough left to run MAGNUM as ancticpated.   This
  8256.     depends on how much RAM memory you have in your system to begin with.
  8257.  
  8258.                                    x lockout
  8259.  
  8260.     You can LOCK OUT any user currently online.  For example, if you  decide
  8261.     the user on node 2 is abusing the system, you can lock them out with:
  8262.  
  8263.        2 lockout
  8264.  
  8265.     The user  will be  denied subsequent  access.   To prevent  abusers from
  8266.     calling at all, consider running Magnum as a "closed" system.
  8267.  
  8268.  
  8269.  
  8270.  
  8271.  
  8272.  
  8273.  
  8274.  
  8275.  
  8276.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8277.  
  8278.  
  8279.  
  8280.     MAGNUM's Sysop Console                                         Page  5-7
  8281.     The active, time, announce/normal, and logon commands
  8282.  
  8283.  
  8284.  
  8285.                                x active|inactive
  8286.  
  8287.     If you have an active node running that you'd like to make inactive,  or
  8288.     if you  have an  MBBSINIT.x file  defined for  a node  but that  node is
  8289.     currently not active, this command will let you toggle the current state
  8290.     of  the  node  to/from  active/inactive.    For  example, to make node 1
  8291.     inactive, enter the command:
  8292.  
  8293.        1 inactive
  8294.  
  8295.     To make node 2 an active node, enter the command:
  8296.  
  8297.        2 active
  8298.  
  8299.     Note that the "inactive" command takes place immediately if there is  no
  8300.     one online on that node at the time you issue the command, otherwise the
  8301.     command takes place after the current caller logs off.
  8302.  
  8303.                               time+nnn | time-nnn
  8304.  
  8305.     You can  increase or  decrease the  amount of  time a  user has left for
  8306.     their session with this command. nnn  is the number of minutes you  wish
  8307.     to increase  or decrease  their time  by.   For example,  if you wish to
  8308.     increase  the  time  for  the  user  on  node 1 by 20 minutes, enter the
  8309.     command:
  8310.  
  8311.        1 time+20
  8312.  
  8313.     If you wish to decrease the time  for the user on node 2 by  10 minutes,
  8314.     enter the command:
  8315.  
  8316.        2 time-10
  8317.  
  8318.     Note that this command is processed by the minute.  In other words,  the
  8319.     effect of this command may not be realized for up to 1 minute.
  8320.  
  8321.     NOTE: Changing the user's time via the Sysop Utilities (user area) will
  8322.           not work if the user being changed is currently logged on. You
  8323.           MUST use the "x TIME+nnn" or "x TIME-nnn" commands for a user
  8324.           who's currently logged on.
  8325.  
  8326.                                announce | normal
  8327.  
  8328.     This command changes a node from normal BBS operation to  announce-only,
  8329.     and vice versa.  If you wish to change node 1 from normal BBS  operation
  8330.     to announce-only, simply enter the command:
  8331.  
  8332.        1 announce
  8333.  
  8334.     Note that by doing  so, MAGNUM will answer  incoming calls as usual  but
  8335.     will display  the file  ANNOUNCE.1 (for  node 1,  ANNOUNCE.2 for node 2,
  8336.     etc) to  the caller  and then  hang up.   MAGNUM  will continue to be in
  8337.  
  8338.  
  8339.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8340.  
  8341.  
  8342.  
  8343.     Page  5-8                                         MAGNUM's Sysop Console
  8344.                        The active, time, announce/normal, and logon commands
  8345.  
  8346.  
  8347.     announce only for  whatever node you  told it to  announce to until  you
  8348.     change it back with the following command:
  8349.  
  8350.        1 normal
  8351.  
  8352.     Note  that  the  ANNOUNCE.x  file  should  not  have  any  color or ANSI
  8353.     sequences in it since no one is allowed to log on, therefore, you  don't
  8354.     know if your caller has color capability or not.  The file(s) ANNOUNCE.x
  8355.     should be placed in  the PROGRAM DIRECTORY.   - - DO NOT  SET YOUR LOCAL
  8356.     NODE AS ANNOUNCE-ONLY!
  8357.  
  8358.     Every time an ANNOUNCE.x is sent to the remote caller, Magnum logs  this
  8359.     in a file called ANNOUNCE.LOG in your PROGRAM DIRectory.
  8360.  
  8361.                                     * logon
  8362.  
  8363.     As  mentioned  earlier,  you  can  log  on  locally (without a modem) by
  8364.     entering the command:
  8365.  
  8366.        * LOGON
  8367.  
  8368.     Currently, you will need to have a MBBSINIT.4 file in order to do  this.
  8369.     You can accomplish this by copying STARTUP.1 to STARTUP.4, then changing
  8370.     the NODE parm to 4 and recompiling with the MAKEMBBS.EXE program.  If
  8371.     you have the 9-node version of Magnum, STARTUP.9 is your local node.
  8372.  
  8373.     Alternately, you may log on to any of the logical nodes locally with:
  8374.  
  8375.        * LOGON x
  8376.  
  8377.     Where 'x' is the node# of the logical  node you wish to log on to.   You
  8378.     will still be on physical node 4 (console for 4-node version) or node  9
  8379.     (console for 9-node version), etc.   With this alternate method,  Magnum
  8380.     is simply using  the MBBSINIT.x file  for all of  its information rather
  8381.     than the MBBSINIT.4 or MBBSINIT.9  file.  Because each MBBSINIT.x  files
  8382.     can  be  its  own  separate  BBS  (with  its own databases by making the
  8383.     session directory unique from the  other nodes), this method of  logging
  8384.     on locally allows you  to be online as  though you were on  node x. It's
  8385.     also a great way to test  your MILC files if you have  different display
  8386.     files for  different nodes.   Note  that node  'x' does  not have  to be
  8387.     "active", nor do  you have to  wait until someone  on the real  node 'x'
  8388.     logs off.  You may log on to node 'x' locally anytime.
  8389.     NOTE: In the MBBS.EXE display screen, on the far right of the same line
  8390.           as the date and time, MBBS will show you the node number(s) of the
  8391.           node(s) currently having a caller logged on. For example, if
  8392.           callers are on nodes 1 and 3, MBBS will show 1,3. If your console
  8393.           node is node 4 (4-node version) and you log onto node 4 (* LOGON),
  8394.           MBBS will show 1,3,4(4). The 4 (in the 4-node version) indicates
  8395.           console node, and the parenthesized number next to it shows
  8396.           logical node. If you logged on to node 2 locally (ie: * LOGON 2),
  8397.           then MBBS would show 1,3,4(2).
  8398.  
  8399.  
  8400.  
  8401.  
  8402.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8403.  
  8404.  
  8405.  
  8406.     MAGNUM's Sysop Console                                         Page  5-9
  8407.     The endnow, end, shutdown and msg commands
  8408.  
  8409.  
  8410.  
  8411.                                     * endnow
  8412.  
  8413.     You can end MAGNUM BBS immediately by entering the command:
  8414.  
  8415.        * endnow
  8416.  
  8417.     This  will  cause  MAGNUM  to  emulate  a  dropped  carrier on all nodes
  8418.     currently in session,  then finally end  the program and  return back to
  8419.     the OS/2 command line or to the OS/2 start programs menu.
  8420.  
  8421.                                      * end
  8422.  
  8423.     To shut down MAGNUM BBS after the last caller's session ends, enter  the
  8424.     command:
  8425.  
  8426.        * end
  8427.  
  8428.     Note that if  2 or more  people are online,  MAGNUM will deactivate  the
  8429.     comport  of  each  line   after  each  respective  session   ends,  thus
  8430.     disallowing further calls.   When the  last user logs  off, MAGNUM shuts
  8431.     down and  returns you  to the  OS/2 command  line or  to the  OS/2 start
  8432.     programs menu.
  8433.  
  8434.                             x shutdown | * shutdown
  8435.  
  8436.     You can  tell MAGNUM  to shut  down any  or all  nodes with the SHUTDOWN
  8437.     command.   Simply enter  the shutdown  command followed  by the time you
  8438.     wish MAGNUM to shut down that node (or all nodes).  The time must be  in
  8439.     24-hour format.  For example, assuming  it is 2:00 PM now, and  you wish
  8440.     to shut down MAGNUM at 2:15 PM, you would enter the command:
  8441.  
  8442.        * shutdown 14:15
  8443.  
  8444.     MAGNUM would then send the following message to all users on any of  the
  8445.     nodes:
  8446.  
  8447.        << System going down in 15 minutes >>
  8448.  
  8449.     MAGNUM will send the "system  going down" messages every 5  minutes from
  8450.     this point until 5 minutes are  left, then at 1 minute intervals.   When
  8451.     the time is reached, MAGNUM  shuts down all nodes and  terminates itself
  8452.     regardless of who's online or what they're doing.
  8453.  
  8454.     Note that MAGNUM doesn't send any "system going down" messages until  30
  8455.     minutes  before  shutdown  is  scheduled.    It then sends another at 20
  8456.     minutes, then 15, 10, 5, 4, 3, 2, and 1 minute remaining.  Note that  if
  8457.     there is less than 20 minutes to shutdown and no one is on a  particular
  8458.     node, MAGNUM shuts down that node anyway.
  8459.  
  8460.     Instead of shutting down all  nodes, you can shut down  individual nodes
  8461.     by using the  node number instead  of the *.  For example, you  can shut
  8462.     down node 2 by entering:
  8463.  
  8464.  
  8465.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8466.  
  8467.  
  8468.  
  8469.     Page  5-10                                        MAGNUM's Sysop Console
  8470.                                   The endnow, end, shutdown and msg commands
  8471.  
  8472.  
  8473.  
  8474.        2 shutdown 05:28
  8475.  
  8476.     This will schedule node  2 to shutdown at  5:28 (AM).  MAGNUM  will send
  8477.     "system going down" messages to  this node starting 30 minutes  prior to
  8478.     shutdown.   If no  one is  on the  node within  10 minutes  of shutdown,
  8479.     MAGNUM will shut the node down anyway.
  8480.  
  8481.     To  reactivate  a  shut-down  node,  for  example,  node  2,  enter  the
  8482.     following:
  8483.  
  8484.        2 active
  8485.  
  8486.     To cancel a shut-down in progress (ie:   node 2 will be shut down  in xx
  8487.     minutes), enter the following:
  8488.  
  8489.        2 shutdown cancel
  8490.  
  8491.     This is a powerful command and will not pay any attention to what  users
  8492.     are doing.   When  the shutdown  time reaches  it's scheduled  time, all
  8493.     nodes (or  the particular  node) being  shut down  will emulate  dropped
  8494.     carrier!
  8495.  
  8496.                         x msg "string" | * msg "string"
  8497.  
  8498.     The MSG command sends a quick and dirty message from the console to  any
  8499.     or  all  ports.    "string"  (without  quotes)  is  the contents of your
  8500.     message.  For example, to send a quick message to node 1, simply enter:
  8501.  
  8502.        1 msg Please update your telephone number!
  8503.  
  8504.     To send a quick message to all nodes, simply enter:
  8505.  
  8506.        * msg I'm starting a group conference - please go to the GROUP CHAT
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  
  8512.  
  8513.  
  8514.  
  8515.  
  8516.  
  8517.  
  8518.  
  8519.  
  8520.  
  8521.  
  8522.  
  8523.  
  8524.  
  8525.  
  8526.  
  8527.  
  8528.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8529.  
  8530.  
  8531.  
  8532.     MAGNUM's Sysop Console                                        Page  5-11
  8533.     miscellaneous commands
  8534.  
  8535.  
  8536.  
  8537.     If you're running MBBS as a fullscreen text app, or you've blown up it's
  8538.     window to full size, the commands we've just described above will appear
  8539.     on the bottom 5  lines of the MBBS  display screen.  These  are the most
  8540.     commonly used  commands.   There are  a few  other commands which you'll
  8541.     probably use less often which  we'll cover now.  Although  premature for
  8542.     you to understand the following commands, you should scan them over  for
  8543.     now, then return here for  a better understanding once you  complete the
  8544.     chapter on ACE (automatic command execution) - Magnum's event handler.
  8545.  
  8546.                    Executing another program from within MBBS
  8547.  
  8548.     You can  execute another  program from  within MBBS.EXE  by starting the
  8549.     command with the  * character, and  then providing the  program name and
  8550.     it's  parameters  within  doublequotes  (the  " character) followed by a
  8551.     comma and one of WAIT, NOWAIT or DETACH.  For example:
  8552.  
  8553.        * "program.exe parms",WAIT
  8554.  
  8555.     This would run "program.exe" while  MBBS WAITs for it to  complete, then
  8556.     returns back  to normal  BBS operation.   A  program run  with the  WAIT
  8557.     parameter causes  MBBS to  save the  present screen  image, and halt all
  8558.     further MBBS execution  (will not have  any effect on  currently running
  8559.     sessions) until the program completes  - at which point the  screen will
  8560.     be restored and normal BBS operation will resume.
  8561.  
  8562.     Running  a  program  with  the  NOWAIT  parameter causes the program you
  8563.     specify to run concurrently with MBBS - normal MBBS operation is resumed
  8564.     immediately and  the present  screen image  is not  saved.   Any program
  8565.     started in  such a  fashion must  NOT write  to the  screen (or stdin or
  8566.     stdout), or expect  any input from  the console (or  keyboard).  If  the
  8567.     program you're running does write  to the screen, you can  redirect it's
  8568.     output with the >  character.  For example,  to redirect all output  for
  8569.     the program, you might enter a command such as:
  8570.  
  8571.        * "program.exe parms 1>nul 2>nul",WAIT
  8572.  
  8573.     which  redirects  stdout  (handle=1)  and  stderr  (handle=2)  to nul (a
  8574.     nonexistent dummy file name used by OS/2).  Just a simple redirection of
  8575.     ">nul" which was  good enough for  DOS (redirected stdout  and stderr to
  8576.     nul) will not work with OS/2 - instead ">nul" to OS/2 means the same  as
  8577.     "1>nul" which will only redirect stdout but not stderr.
  8578.  
  8579.     Running a program with the  DETACH parameter is identical to  running it
  8580.     with the  WAIT parameter  except that  the program  will continue to run
  8581.     even  if  MBBS  terminates.    The  program  can  do screen I/O only via
  8582.     VioPopUp() calls.
  8583.  
  8584.                             The "* REFRESH" command
  8585.  
  8586.     In  the  event  you've  run  another  program  with the NOWAIT or DETACH
  8587.     parameter and forgot to reroute it's output, thus causing it to write to
  8588.     the screen, you can refresh the  screen with this command - it  won't be
  8589.  
  8590.  
  8591.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8592.  
  8593.  
  8594.  
  8595.     Page  5-12                                        MAGNUM's Sysop Console
  8596.                                                       miscellaneous commands
  8597.  
  8598.  
  8599.     the last  screen but  it will  at least  get rid  of the output from the
  8600.     externally running program.
  8601.  
  8602.                             The "* ACE INIT" command
  8603.  
  8604.     This command will cause MBBS to re-read the MBBS.ACE file,  over-writing
  8605.     any  ACE  commands  that  were  queued  for  timed execution.  When this
  8606.     command is issued,  any ACE "immediate"  commands contained in  the file
  8607.     will be ignored  - this insures  that duplicate copies  of programs will
  8608.     not be started.  All previously stored ACE commands will be purged prior
  8609.     to re-reading the MBBS.ACE file.
  8610.  
  8611.                               The "x TOP" command
  8612.  
  8613.     Although we touched on this command earlier, this command will basically
  8614.     be used by  those running our  9-node system (8  comports + console)  or
  8615.     17-node  system  (16  comports  +  console).   Because MBBS only shows 3
  8616.     consecutive nodes on the sysop display at any given time, you can  bring
  8617.     any node to the top of the display with this command.  For example,  the
  8618.     command "5 TOP" will display nodes 5, 6 and 7 on the sysop console.   In
  8619.     the  4-node  version,  "2  TOP"  and  "1  TOP"  are  the only acceptable
  8620.     commands.  In the  2-node version, the TOP  command is unavailable.   In
  8621.     the 9-node version, "X TOP" can be  issued where X is a value from  1 to
  8622.     7. In the 17-node version, X can range from 1 to 15.  In the 9-node  and
  8623.     17-node versions, Magnum will automatically change the top display  node
  8624.     itself on  an incoming  call that  is not  already one  of the  3 in the
  8625.     current display.  For  example, if your TOP  node is 5 (ie:   displaying
  8626.     node information for nodes  5, 6 and 7),  and a caller calls  on node 2,
  8627.     Magnum will internally issue a "1  TOP" command resulting in nodes 1,  2
  8628.     and 3 being displayed.  In other words, Magnum issues an "x top" command
  8629.     where 'x' is the lowest node number which would also include display  of
  8630.     the new caller.  The 17-node  version allows the use of the  TOP command
  8631.     when in  condensed mode,  whereas all  other versions  disregard the TOP
  8632.     command in  condensed mode  (see "*  CONDENSE ON"  and "*  CONDENSE OFF"
  8633.     commands).
  8634.  
  8635.                             The "* SYSBELL" command
  8636.  
  8637.     Sometimes it can become annoying to hear the sounds Magnum makes when  a
  8638.     caller's session is about  to be started.   The "* SYSBELL OFF"  command
  8639.     will deactivate these sounds, likewise, the "* SYSBELL ON" command  will
  8640.     turn  them  back  on  again.    Do  not  confuse  this  command with the
  8641.     NOBELL/BELL commands which apply to  the session - SYSBELL only  applies
  8642.     to the Sysop console (MBBS.EXE) whereas NOBELL applies to MSESSION.EXE.
  8643.  
  8644.                               The "* HELP" command
  8645.  
  8646.     When running MBBS.EXE as a fullscreen  text app (or as a maximized  text
  8647.     window), the sysop commands appear  at the bottom of your  screen/window
  8648.     in the last 4  lines of display.   However, there isn't room  for all of
  8649.     the commands to  appear in the  last 4 lines,  therefore, "* HELP"  will
  8650.     display the next set of  4 lines summarizing additional commands.   Each
  8651.     time you enter "*  HELP" (or "x INFO"),  the HELP display at  the bottom
  8652.  
  8653.  
  8654.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8655.  
  8656.  
  8657.  
  8658.     MAGNUM's Sysop Console                                        Page  5-13
  8659.     miscellaneous commands
  8660.  
  8661.  
  8662.     will alternate.
  8663.  
  8664.                            The "x BLOCKWRITE" command
  8665.  
  8666.     The "x BLOCKWRITE" command enables/disables block writes for node x. For
  8667.     example, the command "2 BLOCKWRITE ON" would enable blockwrites for node
  8668.     2, while the  command "2 BLOCKWRITE  OFF" would disable  blockwrites for
  8669.     node 2.
  8670.  
  8671.                              The "* COLOR" command
  8672.  
  8673.     This command  doesn't affect  BBS operation,  it simply  sets the colors
  8674.     used by  MBBS.EXE which  you might  rather use  than the default colors.
  8675.     The syntax is "* COLOR UPDT MSG EXIT", where:
  8676.  
  8677.        UPDT is the color of the update information printed on the sysop
  8678.             console for the three nodes being currently displayed.
  8679.         MSG is the color of any messages printed just below the "Command =>"
  8680.             prompt.
  8681.        EXIT is the color Magnum will reset your screen to upon exit.
  8682.  
  8683.     The value of the colors for all three parms can be one of 1 to 7 or 9 to
  8684.     15 according to the following color table:
  8685.  
  8686.           0 - UNUSED        8 - UNUSED
  8687.           1 - blue          9 - bright blue
  8688.           2 - green        10 - bright green
  8689.           3 - cyan         11 - bright cyan
  8690.           4 - red          12 - bright red
  8691.           5 - magenta      13 - bright magenta
  8692.           6 - brown        14 - yellow
  8693.           7 - white        15 - bright white
  8694.  
  8695.     For example, the command:
  8696.  
  8697.        * COLOR 11 12 7
  8698.  
  8699.     would set the UPDATE color to 11 (bright cyan),
  8700.               the   MSG  color to 12 (bright red),
  8701.           and the  EXIT  color to 7 (white).
  8702.  
  8703.     The settings used in  this example also happen  to be the default  color
  8704.     settings.  As with all other  default system settings, you can put  this
  8705.     command  as  an  'immediate  command'  in  your  MBBS.ACE  file with the
  8706.     parameters to match whatever colors you choose.
  8707.  
  8708.                The "* CONDENSE ON" and "* CONDENSE OFF" commands
  8709.  
  8710.     The condensed  mode of  operation is  mainly for  those using the 9-node
  8711.     version of Magnum  BBS or higher.   Although it  will also work  for the
  8712.     4-node version.  The "* CONDENSE ON" command tells MBBS to display  only
  8713.     the state of all nodes (ie:  ACTIVE, INACTIVE, who's on the node,  etc).
  8714.     In other words,  instead of each  node having 3  text lines of  display,
  8715.  
  8716.  
  8717.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8718.  
  8719.  
  8720.  
  8721.     Page  5-14                                        MAGNUM's Sysop Console
  8722.                                                       miscellaneous commands
  8723.  
  8724.  
  8725.     each node will only have 1 text  line of display.  The "* CONDENSE  OFF"
  8726.     command returns MBBS to  the default 3 text  lines of display per  node.
  8727.     The advantage of 1 text line per  node is that you can see who's  on all
  8728.     nodes without having to  issue a "x TOP"  command.  The disadvantage  is
  8729.     that you don't  know what the  users of each  node are currently  doing.
  8730.     This command  is geared  for the  9-node version  of Magnum  and higher.
  8731.     Users of the 4-node version will probably not have much use (if any) for
  8732.     this command. Users of the 17-node version can issue the "x TOP" command
  8733.     for consecutive display of any 9 nodes.
  8734.  
  8735.                 The "* PRTY class level" and "* PRTY ?" commands
  8736.  
  8737.     The priority class and level of MBBS.EXE (the Magnum PARENT program) can
  8738.     be set with this command.   Note the syntax uses the space  character to
  8739.     delimit the parameters (no commas).  The priority class can range from 1
  8740.     to 4  where 1=Idle  Time Class,  2=Regular Time  Class, 3=Time  Critical
  8741.     Class, and  4=Foreground Class.   The  level within  the class can range
  8742.     from  0  to  31  where  0  is  the  lowest  level within a class (lowest
  8743.     priority) and 31 is the highest level within a class.  Unless you are  a
  8744.     system  administrator  or  other  individual  experienced in fine tuning
  8745.     systems with priority levels and classes, this should remain at Class 2,
  8746.     Level 0  (* PRTY  2 0).   Note  that you  can query the current priority
  8747.     class and level with the command "* PRTY ?".
  8748.     NOTE: Do not confuse this command with the PRTY_CLASS and PRTY_LEVEL
  8749.           parameters in your STARTUP.x file(s). Those are for the priority
  8750.           classes and levels of MSESSION.EXE (individual user sessions).
  8751.  
  8752.        The "* PLAY x" command and Recording a Session for later playback
  8753.  
  8754.     This command is similar  to the "* LOGON  x" command but "plays  back" a
  8755.     previously recorded sysop session.   The 'x', although optional, is  the
  8756.     node#, and if not supplied will  default to the console node (node  2 in
  8757.     the 2-node version, 4 in the 4-node version, etc).  To record a  session
  8758.     for playback,  use the  "* LOGON  x" command  and log  on as  usual (you
  8759.     cannot record a session from any node other than the console node).  Log
  8760.     on as  ID //0  (sysop) and  note the  double slash  instead of  a single
  8761.     slash.  When  you've logged on  this way, you'll  get a message  stating
  8762.     "Invalid  ID"  and  a  note  that  the  session is being recorded.  When
  8763.     re-prompted for your ID, proceed to log on as usual.  Everything will be
  8764.     recorded to a file for later playback with the "* PLAY x" command.  Note
  8765.     that the 'x'  in the LOGON  and the PLAY  command determines which  file
  8766.     number to record or play back.
  8767.     NOTE: When recording a session, DO NOT stop any displays with <Ctrl-X>
  8768.           or the spacebar character! DO NOT run external programs requiring
  8769.           anything other than command-line arguments (no interactive pgms).
  8770.           The purpose of recording a session is to automate packing of the
  8771.           databases with an MBBS 'ACE' command, where "* PLAY x" would be
  8772.           the ACE command. See the chapter on ACE (Automatic Command
  8773.           Execution - Magnum's Event Handler).
  8774.  
  8775.                       The "x YELL" and "x NOYELL" commands
  8776.  
  8777.     Although  Magnum  abides  by  the  Sysop  paging hours in your STARTUP.x
  8778.  
  8779.  
  8780.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8781.  
  8782.  
  8783.  
  8784.     MAGNUM's Sysop Console                                        Page  5-15
  8785.     miscellaneous commands
  8786.  
  8787.  
  8788.     file(s), you can override this with the YELL and NOYELL commands  (where
  8789.     'x' is the  node number).   For example, to  turn off the  ability for a
  8790.     remote user to page the Sysop  on node 2, issue the command  "2 NOYELL".
  8791.     To turn on the ability to page the Sysop on node 2, issue the command "2
  8792.     YELL".  Note that when NOYELL  is issued on a node, it  disregards Sysop
  8793.     paging hours and dissallows the ability for the Sysop to be paged.  When
  8794.     YELL is issued, Magnum abides by the Sysop Paging hours specified in the
  8795.     STARTUP.x file for node x.
  8796.  
  8797.                     The "x ONHOOK" and "x OFFHOOK" commands
  8798.  
  8799.     You can send ONHOOK and OFFHOOK  commands to your modem.  By  sending an
  8800.     OFFHOOK command,  it's like  physically lifting  your telephone  off the
  8801.     hook and letting it sit there (any callers will get a busy signal).   If
  8802.     you issue an ONHOOK command, it's  like hanging up the phone (the  modem
  8803.     is ready to receive  calls).  NOTE:   Unless you have an  external modem
  8804.     with lights that  indicate whether your  modem is onhook  or offhook, we
  8805.     suggest you avoid the use of these commands.
  8806.  
  8807.                        The "* RMAIL node:userid" command
  8808.  
  8809.     This command starts the RMAIL process (Magnum-to-Magnum remote mail
  8810.     exchange) with another Magnum BBS system. Refer to the chapter on
  8811.     Magnum-to-Magnum Remote Mail.
  8812.  
  8813.                  The "x CALLS MAIL" and "x CALLS ALL" commands
  8814.  
  8815.     The "x CALLS MAIL" command sets node x such that only MAIL accounts will
  8816.     be granted access  to the system  on node x.  Any USER accounts  will be
  8817.     denied access.  Optionally, the file NOTMAIL.x in your PROGRAM DIRectory
  8818.     (if it exists) will be displayed to a USER prior to denying access  when
  8819.     the node is in 'mail only' mode.
  8820.  
  8821.     The "x CALLS ALL"  deactivates "mail only" mode.   When this command  is
  8822.     issued for  node x,  node x  will accept  ALL caller  types (MAIL and/or
  8823.     USER).
  8824.  
  8825.                           The "* LOGOCOLOR x" command
  8826.  
  8827.     where 'x' is a number ranging from 1 to 15.  The color value is the same
  8828.     as the values of the * COLOR statement.  This command changes the  color
  8829.     of the logo appearing at the top of the screen.  This command is used if
  8830.     the default color does not show up on monochrome screens.
  8831.  
  8832.                           The "* FRAMECOLOR x" command
  8833.  
  8834.     where 'x' is a number ranging from 1 to 15.  The color value is the same
  8835.     as the values of the * COLOR statement.  This command changes the  color
  8836.     of the frames appearing around the node displays.  This command is  used
  8837.     if the default color does not show up on monochrome screens.
  8838.  
  8839.                          The "* ERRLOG ON|OFF" Command
  8840.  
  8841.  
  8842.  
  8843.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8844.  
  8845.  
  8846.  
  8847.     Page  5-16                                        MAGNUM's Sysop Console
  8848.                                                       miscellaneous commands
  8849.  
  8850.  
  8851.     If you specify ON, any warning  or error messages will be logged  to the
  8852.     file  MBBS.ERR  in  your  program  directory.    Note  that  once  ON is
  8853.     specified, the file MBBS.ERR remains open until the BBS is shut down  (*
  8854.     ENDNOW), even if you specify OFF.   Also note that whenever you  restart
  8855.     your BBS (MBBS.EXE), it will delete the MBBS.ERR file upon startup.
  8856.  
  8857.  
  8858.  
  8859.  
  8860.  
  8861.  
  8862.  
  8863.  
  8864.  
  8865.  
  8866.  
  8867.  
  8868.  
  8869.  
  8870.  
  8871.  
  8872.  
  8873.  
  8874.  
  8875.  
  8876.  
  8877.  
  8878.  
  8879.  
  8880.  
  8881.  
  8882.  
  8883.  
  8884.  
  8885.  
  8886.  
  8887.  
  8888.  
  8889.  
  8890.  
  8891.  
  8892.  
  8893.  
  8894.  
  8895.  
  8896.  
  8897.  
  8898.  
  8899.  
  8900.  
  8901.  
  8902.  
  8903.  
  8904.  
  8905.  
  8906.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8907.  
  8908.  
  8909.  
  8910.     MAGNUM's Sysop Console                                        Page  5-17
  8911.     CHATting between SYSOP (you) and a USER via the Console
  8912.  
  8913.  
  8914.  
  8915.     To chat with a remote user,  simply SWITCH to their session (make  their
  8916.     session  the  foreground  process).    When  their  session  is  in  the
  8917.     foreground, press your <F7> key and both you and the user will be placed
  8918.     in  SYSCHAT  mode  (Sysop  Chat  with  User).   Note that if the user is
  8919.     entering a message at the time you press <F7>, the chat will be  delayed
  8920.     until the user finishes message entery, otherwise chat will take  effect
  8921.     at the very next system prompt the  user gets.  To end the chat,  simply
  8922.     press your <F7> key again.  Note that all text which transpires  between
  8923.     you and the remote user during SYSCHAT will be logged to the SYSCHAT.LOG
  8924.     file in your SYSOUT directory.
  8925.  
  8926.  
  8927.  
  8928.  
  8929.  
  8930.  
  8931.  
  8932.  
  8933.  
  8934.  
  8935.  
  8936.  
  8937.  
  8938.  
  8939.  
  8940.  
  8941.  
  8942.  
  8943.  
  8944.  
  8945.  
  8946.  
  8947.  
  8948.  
  8949.  
  8950.  
  8951.  
  8952.  
  8953.  
  8954.  
  8955.  
  8956.  
  8957.  
  8958.  
  8959.  
  8960.  
  8961.  
  8962.  
  8963.  
  8964.  
  8965.  
  8966.  
  8967.  
  8968.  
  8969.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  8970.  
  8971.  
  8972.  
  8973.     Page  5-18                                        MAGNUM's Sysop Console
  8974.                                                  Displaying a File with <F6>
  8975.  
  8976.  
  8977.  
  8978.     Pressing the F6 function key during a user's session (with that  session
  8979.     in the foreground) will cause a system prompt for a filespec to display.
  8980.     This  can  be  used  for  a  variety  of  purposes  such as displaying a
  8981.     MILC-containing file to perform a  certain task (such as calling  a .mex
  8982.     program to  upgrade a  user online).   The  filespec you  enter will  be
  8983.     processed and  displayed as  though it  were a  system file  (such as  a
  8984.     newsletter).    This  function  can  only  be invoked by switching to an
  8985.     online user's session and pressing the F6 key at the console.  In that a
  8986.     prompt  for  a  filespec  results  (rather than a predetermined filename
  8987.     assigned  to  a  function  key)  system  security  is maintained against
  8988.     someone snooping on a session  at the console and accidentally  pressing
  8989.     that function key.   Note that  neither the prompt  for the filespec  or
  8990.     your entry of the filespec name  will be displayed at the remote  user's
  8991.     screen.  The filespec entry can be up to 100 characters in length.
  8992.  
  8993.  
  8994.  
  8995.  
  8996.  
  8997.  
  8998.  
  8999.  
  9000.  
  9001.  
  9002.  
  9003.  
  9004.  
  9005.  
  9006.  
  9007.  
  9008.  
  9009.  
  9010.  
  9011.  
  9012.  
  9013.  
  9014.  
  9015.  
  9016.  
  9017.  
  9018.  
  9019.  
  9020.  
  9021.  
  9022.  
  9023.  
  9024.  
  9025.  
  9026.  
  9027.  
  9028.  
  9029.  
  9030.  
  9031.  
  9032.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9033.  
  9034.  
  9035.  
  9036.     MAGNUM's Sysop Console                                        Page  5-19
  9037.     TEST Mode (Testing your modem)
  9038.  
  9039.  
  9040.                               The "x TEST" command
  9041.  
  9042.     This command will  rarely be used.   However, setting  up a BBS  for the
  9043.     first time can be  frustrating.  BBS software  must be able to  interact
  9044.     with  your  particular  modem.    Sysops  are  not  expected to be modem
  9045.     experts, nor should they  have to be.   Sometimes, due to the  nature of
  9046.     BBS and modem relationships, problems will develop during initial setup.
  9047.     Therefore, we've  included a  TEST mode  for any  problems which  may be
  9048.     encountered when setting up a new modem.
  9049.  
  9050.     The syntax of TEST mode is "x  TEST".  For example, to put the  modem on
  9051.     node 1 into test  mode, you'd enter the  following command on the  Sysop
  9052.     command line:
  9053.  
  9054.        1 TEST
  9055.  
  9056.     Once in  TEST mode,  brief instructions  will appear  which are all self
  9057.     explanatory.  Basically, you'll start  with the /INIT command and  watch
  9058.     for the digit 0 (zero if using numeric result codes [V0]) or the word OK
  9059.     (if using verbose result codes [V1]) being displayed after each  STARTUP
  9060.     string sent  to your  modem.   If you  don't get  a 0  or OK back from a
  9061.     particular string,  it indicates  a problem  with that  string.  Contact
  9062.     Gilmore Systems for further information regarding TEST mode.
  9063.  
  9064.     CAUTIONS: - DO NOT USE THIS MODE TO DIAL OUT WITH. THE RESULTS WILL BE
  9065.                 UNPREDICTABLE!
  9066.               - AS WITH ALL OTHER SYSOP COMMANDS, MBBS.EXE WILL REMAIN IN
  9067.                 A "FROZEN" STATE UNTIL YOU ARE THROUGH WITH TEST MODE (ie:
  9068.                 will not recognize incoming calls).
  9069.  
  9070.  
  9071.  
  9072.  
  9073.  
  9074.  
  9075.  
  9076.  
  9077.  
  9078.  
  9079.  
  9080.  
  9081.  
  9082.  
  9083.  
  9084.  
  9085.  
  9086.  
  9087.  
  9088.  
  9089.  
  9090.  
  9091.  
  9092.  
  9093.  
  9094.  
  9095.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9096.  
  9097.  
  9098.  
  9099.     Page  5-20                                        MAGNUM's Sysop Console
  9100.                                                        Icon Control Commands
  9101.  
  9102.  
  9103.                      The "x TITLE new title string" command
  9104.  
  9105.       Syntax:  x Title New-Title
  9106.  
  9107.       Replaces the title name placed above the icon when running
  9108.       MSESSION.EXE for node x. A string of up to 32 characters can be used.
  9109.  
  9110.                               The "x ICON" command
  9111.  
  9112.       Syntax:  x ICON [d:][\][path]filename[.ext]
  9113.  
  9114.       Assigns an icon file to be associated with MSESSION.EXE for node x.
  9115.       During our testing, this works fine with OS/2 1.3, however, we cannot
  9116.       seem to associate an icon with MSESSION.EXE in OS/2 2.0 which we feel
  9117.       is probably a bug in the OS. If any of you have any luck in this area,
  9118.       please let us know what fixes to the OS (if any) you've installed, and
  9119.       what steps you've taken.
  9120.  
  9121.  
  9122.  
  9123.  
  9124.  
  9125.  
  9126.  
  9127.  
  9128.  
  9129.  
  9130.  
  9131.  
  9132.  
  9133.  
  9134.  
  9135.  
  9136.  
  9137.  
  9138.  
  9139.  
  9140.  
  9141.  
  9142.  
  9143.  
  9144.  
  9145.  
  9146.  
  9147.  
  9148.  
  9149.  
  9150.  
  9151.  
  9152.  
  9153.  
  9154.  
  9155.  
  9156.  
  9157.  
  9158.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9159.  
  9160.  
  9161.  
  9162.     MAGNUM's Sysop Console                                        Page  5-21
  9163.     Program Control Commands
  9164.  
  9165.  
  9166.                         The "x PGM pgmname.exe" command
  9167.  
  9168.       Syntax:  x PGM [d:][path]pgmname.exe
  9169.  
  9170.       Where 'x' is one of your nodes, PGM is the keyword, and pgmname.exe is
  9171.       the name of the program to be started (executed) when a caller calls.
  9172.  
  9173.       This is designed exclusively for those using the Magnum "Language
  9174.       Replacement Module" (it is not meant to start any other programs).
  9175.       For example, if you converted the English text within MSESSION.EXE to
  9176.       German and renamed the program to MSES_GER.EXE, and/or did the same
  9177.       with French and/or Italian.
  9178.  
  9179.       For example, if you have MSESSION.EXE as your English module,
  9180.       MSES_FRE.EXE as your French module, and/or MSES_GER.EXE as your German
  9181.       module, and/or MSES_ITA.EXE as the Italian module, etc, then you might
  9182.       consider the following (assume 9-node version for this example):
  9183.  
  9184.          1 PGM MSESSION.EXE
  9185.          2 PGM MSESSION.EXE
  9186.          3 PGM MSES_GER.EXE
  9187.          4 PGM MSES_GER.EXE
  9188.          5 PGM MSES_FRE.EXE
  9189.          6 PGM MSES_FRE.EXE
  9190.          7 PGM MSES_ITA.EXE
  9191.          8 PGM MSES_ITA.EXE
  9192.          9 PGM MSESSION.EXE
  9193.  
  9194.       The above will assign MSESSION.EXE (English) to nodes 1, 2 and 9. The
  9195.       German module will be assigned to nodes 3 and 4, French to 5 and 6,
  9196.       Italian to 7 and 8. This is merely an example; you can assign
  9197.       whichever programs you wish to whatever nodes you wish. Furthermore,
  9198.       to make this automatic, simply place these commands in your MBBS.ACE
  9199.       file (example):
  9200.  
  9201.          *,1 PGM MSESSION.EXE
  9202.          *,2 PGM MSESSION.EXE
  9203.          *,3 PGM MSES_GER.EXE
  9204.          *,4 PGM MSES_GER.EXE
  9205.          *,5 PGM MSES_FRE.EXE
  9206.          *,6 PGM MSES_FRE.EXE
  9207.          *,7 PGM MSES_ITA.EXE
  9208.          *,8 PGM MSES_ITA.EXE
  9209.          *,9 PGM MSESSION.EXE
  9210.  
  9211.       If you're using a single dial-up line (node1 for example), you might
  9212.       consider having German available from 00:00 to 12:00 and English
  9213.       available from 12:01 to 23:59 (as an example); the commands in your
  9214.       ACE file would be:
  9215.  
  9216.          0123456,00:00,1 PGM MSES_GER.EXE
  9217.          0123456,12:01,1 PGM MSESSION.EXE
  9218.  
  9219.  
  9220.  
  9221.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9222.  
  9223.  
  9224.  
  9225.     Page  5-22                                        MAGNUM's Sysop Console
  9226.                                                     Program Control Commands
  9227.  
  9228.  
  9229.       --> NOTE <--
  9230.  
  9231.       The program (pgmname.exe) MUST be located in your PROGRAM DIRectory!
  9232.       You must NOT supply any information other than the program name and
  9233.       extension (no path or drive information allowed). The extension MUST
  9234.       be .EXE (.CMD, .COM, .BAT, etc are NOT acceptable)!
  9235.  
  9236.      -     x PGMINPUT * | [%com%] [%baud%] [%device%] [parm1 ...parmx]
  9237.  
  9238.       When using the "x PGM pgmname.exe" feature, you can use the
  9239.       "x PGMINPUT" command to pass whatever input you wish to your
  9240.       pgmname.exe.  If you use %com% as part of this input, it will be
  9241.       replaced with the comport handle prior to starting pgmname.exe.
  9242.       Likewise, %log% will be replaced with the activity log handle (write
  9243.       only), %baud% will be replaced with the baud rate (DCE), and %device%
  9244.       will be replaced with the device name.  Alternately, you can use
  9245.       "x PGMINPUT *" to revert back to the parameters expected by
  9246.       MSESSION.EXE or any derivative of MSESSION.EXE you may have created
  9247.       with the Language Replacement Module.
  9248.  
  9249.     - Although the above "x PGM pgmname.exe" command within MBBS.EXE is one
  9250.       solution to the LANGUAGE problem, MSESSION.EXE offers another solution
  9251.       which OVER-RIDES the MBBS.EXE solution:
  9252.  
  9253.          When MSESSION.EXE starts, it now checks for the presence of a file
  9254.          in your PROGRAM DIRectory by the name of LANGUAGE.LST and if it
  9255.          finds it, prompts you for a language, exits, and restarts the new
  9256.          language module - without breaking the connection! The format of
  9257.          LAGNUAGE.LST (via example) is as follows:
  9258.  
  9259.                 ENGLISH     (MSESSION.EXE *)
  9260.                  FRENCH     (MSES_FRE.EXE *)
  9261.                  GERMAN     (MSES_GER.EXE *)
  9262.                 ITALIAN     (MSES_ITA.EXE *)
  9263.                 SPANISH     (MSES_SPA.EXE *)
  9264.  
  9265.          The format is simple: Name of the language, followed by the program
  9266.          name and its parameters in parenthesis. For our purposes, the
  9267.          paremeters to MSESSION.EXE (or any derivative created with the
  9268.          Language Replacement Module) shall have its parameters denoted by
  9269.          the * character. When Magnum reads this file, it will present
  9270.          it to the user without the program names, and will provide a
  9271.          language "menu" (selection) based on your file.
  9272.  
  9273.     - If the file LANGUAGE.LST exists, it applies to ALL NODES! If you do
  9274.       not want ALL nodes to prompt (ie: you only want nodes 2 and 3 to
  9275.       prompt, but none of the others), then do NOT create a LANGUAGE.LST
  9276.       file! Instead, create LANGUAGE.2 and LANGUAGE.3 following the same
  9277.       format of the the LANGUAGE.LST file. In other words, Magnum first
  9278.       looks for LANGUAGE.LST - if it doesn't find it, it then looks for
  9279.       LANGUAGE.x (where 'x' is the node being called) - if it doesn't find
  9280.       that, no further looking is done, the session proceeds as usual!
  9281.  
  9282.  
  9283.  
  9284.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9285.  
  9286.  
  9287.  
  9288.     MAGNUM's Sysop Console                                        Page  5-23
  9289.     Program Control Commands
  9290.  
  9291.  
  9292.     - External Menus are highly recommended when using different languages!
  9293.       The menus presented to your callers will be the dynamically built
  9294.       menus as defined in your STARTUP.x file(s) unless you over-ride these
  9295.       with external menus! Use the @V94 MILC variable to query which
  9296.       language module has been loaded and then act accordingly.
  9297.  
  9298.  
  9299.  
  9300.  
  9301.  
  9302.  
  9303.  
  9304.  
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.  
  9311.  
  9312.  
  9313.  
  9314.  
  9315.  
  9316.  
  9317.  
  9318.  
  9319.  
  9320.  
  9321.  
  9322.  
  9323.  
  9324.  
  9325.  
  9326.  
  9327.  
  9328.  
  9329.  
  9330.  
  9331.  
  9332.  
  9333.  
  9334.  
  9335.  
  9336.  
  9337.  
  9338.  
  9339.  
  9340.  
  9341.  
  9342.  
  9343.  
  9344.  
  9345.  
  9346.  
  9347.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9348.  
  9349.  
  9350.  
  9351.  
  9352.  
  9353.  
  9354.  
  9355.  
  9356.  
  9357.  
  9358.  
  9359.  
  9360.  
  9361.  
  9362.  
  9363.  
  9364.  
  9365.  
  9366.  
  9367.  
  9368.  
  9369.  
  9370.  
  9371.  
  9372.  
  9373.  
  9374.  
  9375.  
  9376.  
  9377.  
  9378.  
  9379.  
  9380.                          This Page Intentionally Blank
  9381.  
  9382.  
  9383.  
  9384.     Back to Display Files & Subdirectories                         Page  6-1
  9385.     The PROGRAM DIRECTORY
  9386.  
  9387.  
  9388.     *--->>> This Chapter is to be used in conjunction with chapter 2 <<<---*
  9389.  
  9390.           ******************************************************************
  9391.     NOTE: * The main files (but not all files) for Magnum BBS are          *
  9392.           * outlined here.  ALL files are briefly explained in chapter 2.  *
  9393.           * Remember, if a file listed here (or in chapter 2) is NOT found,*
  9394.           * it is OPTIONAL (ie: used only if it exists).  THIS CHAPTER IS  *
  9395.           * TO BE USED IN CONJUNCTION WITH CHAPTER 2.                      *
  9396.           ******************************************************************
  9397.  
  9398.     Within the PROGRAM DIRECTORY, the following files should be found:
  9399.  
  9400.     MBBS.EXE     - The main (parent) program for MAGNUM BBS. This is the
  9401.                    program that you will start in order to start the BBS.
  9402.  
  9403.     MSESSION.EXE - The child program that MAGNUM (mbbs.exe) calls for each
  9404.                    session.
  9405.  
  9406.     PUTFILES.EXE - The child program that MAGNUM (mbbs.exe) calls for
  9407.                    sending files when a user chooses the [D]ownload option.
  9408.  
  9409.     GETFILES.EXE - The child program that MAGNUM (mbbs.exe) calls for
  9410.                    receiving files when a user chooses the [U]pload option.
  9411.  
  9412.              NOTEs about GETFILES.EXE and PUTFILES.EXE:
  9413.  
  9414.              Monitoring of Carrier has been re-established for file xfers  -
  9415.              this has  caused some  problems in  the past  (version 1.0x  of
  9416.              Magnum,  mainly  on  IBM  PS/2  machines  with EE) and has been
  9417.              removed ever  since.   If monitoring  of carrier  is causing  a
  9418.              problem for you, you can remove (or implement) this  monitoring
  9419.              of  DCD  (data  carrier   detect)  by  setting  the   following
  9420.              ENVIRONMENT variable PRIOR to starting Magnum (mbbs.exe) on the
  9421.              OS/2 command line (or in a .CMD file that starts Magnum):
  9422.  
  9423.               SET DCDXFR=FALSE  (turns off monitoring of DCD for file xfers)
  9424.               SET DCDXFR=TRUE   (turns on monitoring of DCD for file xfers)
  9425.  
  9426.              If  the  environment  variable  DCDXFR  is  not found (ie:  not
  9427.              defined), the default is to turn ON monitoring of DCD for  file
  9428.              xfers (just as though  you've defined SET DCDXFR=TRUE).   Also,
  9429.              for  your  convenience,  any  of  the  following  parms are all
  9430.              acceptable:
  9431.  
  9432.              To turn OFF monitoring of DCD for file xfers:
  9433.  
  9434.                    SET DCDXFR=FALSE
  9435.               or   SET DCDXFR=OFF
  9436.               or   SET DCDXFR=NO
  9437.               or   SET DCDXFR=N
  9438.               or   SET DCDXFR=0
  9439.  
  9440.            To turn ON monitoring of DCD for file xfers:
  9441.  
  9442.  
  9443.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9444.  
  9445.  
  9446.  
  9447.     Page  6-2                         Back to Display Files & Subdirectories
  9448.                                                        The PROGRAM DIRECTORY
  9449.  
  9450.  
  9451.  
  9452.                    SET DCDXFR=TRUE
  9453.               or   SET DCDXFR=ON
  9454.               or   SET DCDXFR=YES
  9455.               or   SET DCDXFR=Y
  9456.               or   SET DCDXFR=1
  9457.  
  9458.     MAKEMBBS.EXE - The configuration compiler/de-compiler. This is the
  9459.                    program that compiles your STARTUP.x files into
  9460.                    MBBSINIT.x files, or de-compiles your MBBSINIT.x files
  9461.                    into STARTUP.x files.
  9462.  
  9463.     MBBSEXEC.EXE - This is the MBBS executive progam utility for sysops
  9464.                    which not only simplifies maintenance, but also provides
  9465.                    a very powerful, flexible programming language with which
  9466.                    the Sysop of a Magnum BBS can use to define his/her
  9467.                    maintenance needs.
  9468.  
  9469.     RJEMONIT.EXE - This is a daemon process which monitors RJE jobs started
  9470.                    by Magnum. A daemon process is a program which runs in
  9471.                    the background continually until your computer is either
  9472.                    shut off or rebooted. A daemon process cannot be selected
  9473.                    or "switched to" because it's running as a detached
  9474.                    process. A separate copy of RJEMONIT.EXE is invoked only
  9475.                    once for each node. The original invokation happens only
  9476.                    when the 1st user on any node chooses the [L]ist/Execute
  9477.                    function of the RJE section, or the first time the @E1
  9478.                    command is encountered. Once it's started, Magnum knows
  9479.                    it's running and will never start it again unless the
  9480.                    system has been rebooted. RJEMONIT.EXE will be invoked
  9481.                    once for each node, and only if the @E1 MILC command or
  9482.                    the [L]ist/Execute function has been selected in the RJE
  9483.                    menu for that node. The RJEMONIT.EXE program is
  9484.                    responsible for updating the RJE database when RJE job(s)
  9485.                    complete - regardless of whether the user is online, or
  9486.                    even if your BBS system is running or not.
  9487.  
  9488.     STOPMBBS.EXE - These programs are used to immediately stop ALL actively
  9489.     & STOPRJE.EXE  running copies of MBBS.EXE and LOCALBBS.EXE (LAN Local
  9490.                    Logon Module) and their associated MSESSION.EXE programs;
  9491.                    AND all actively running RJEMONIT.EXE programs. For more
  9492.                    information on the use of these programs, execute the
  9493.                    program without parms.
  9494.  
  9495.     KILLPROC.EXE - This program is used internally by Magnum, however, you
  9496.                    may find this program of use to you too. For more
  9497.                    information on the use of this program, execute it
  9498.                    without parms.
  9499.  
  9500.     EMAILIN.EXE  - This program places incoming Internet E-mail into the
  9501.                    appropriate Magnum MsgBase/area.
  9502.  
  9503.     MBBSINIT.x   - The output files that MAKEMBBS.EXE creates from your
  9504.  
  9505.  
  9506.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9507.  
  9508.  
  9509.  
  9510.     Back to Display Files & Subdirectories                         Page  6-3
  9511.     The PROGRAM DIRECTORY
  9512.  
  9513.  
  9514.                    STARTUP.x files. No node can run without a matching
  9515.                    MBBSINIT.x file, where x is the node number.
  9516.  
  9517.     STARTUP.x    - The human-readable source file which will serve as input
  9518.                    to the MAKEMBBS.EXE program. MAKEMBBS.EXE converts these
  9519.                    files to MBBSINIT.x files.
  9520.  
  9521.     ANNOUNCE.x   - A simple text file (where x is the node number the file
  9522.                    will be used on). This file contains an announcement and
  9523.                    is displayed when the node is in "announce-only" mode.
  9524.                    Do not use any ANSI escape sequences or color in this
  9525.                    file!
  9526.  
  9527.     MBBS.ACE     - A text file containing Magnum ACE (Automatic Command
  9528.                    Execution) commands. Read by MBBS.EXE upon startup.
  9529.                    Commands in this file can be a combination of "immediate"
  9530.                    (commands to be executed right away) and queued commands
  9531.                    (commands to be stored for later, timed execution on
  9532.                    certain days and times).
  9533.  
  9534.     ACE.LOG      - Generated by MBBS.EXE - this file contains the log of any
  9535.                    ACE commands which were executed by MBBS.EXE including
  9536.                    the date and time of execution.
  9537.  
  9538.     UTILIZ.DAT   - This file contains utilization information about your
  9539.                    system. It will not exist until after your first logon.
  9540.                    An external child (door) program is in the works which
  9541.                    will process the data in this file. For those interested
  9542.                    in the record layout of this file please contact us for
  9543.                    further information.
  9544.  
  9545.  
  9546.  
  9547.  
  9548.  
  9549.  
  9550.  
  9551.  
  9552.  
  9553.  
  9554.  
  9555.  
  9556.  
  9557.  
  9558.  
  9559.  
  9560.  
  9561.  
  9562.  
  9563.  
  9564.  
  9565.  
  9566.  
  9567.  
  9568.  
  9569.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9570.  
  9571.  
  9572.  
  9573.     Page  6-4                         Back to Display Files & Subdirectories
  9574.                                                        The SESSION DIRECTORY
  9575.  
  9576.  
  9577.  
  9578.     Within the SESSION DIRECTORY, the following files should be found:
  9579.  
  9580.     SPLITKEY.EXE - This program rebuilds *.KEY files from your USER.DAT
  9581.                    (user database) file.
  9582.                    The SPLITKEY.EXE program will reject all LastName's not
  9583.                    starting with one of the following characters:
  9584.                        - alphanumeric (A-Z, a-z, 0-9)
  9585.                        - underscore ( _ ) character
  9586.                        - dollar ( $ ) character
  9587.                    If the last name of any record does not start with one of
  9588.                    these characters, the record for this file will not be
  9589.                    rebuilt into a key file, but the last name will change to
  9590.                    ERRORxxxxx (where xxxxx is the ID of that user account).
  9591.                    NOTE: If you change someone's LAST NAME, whether with
  9592.                          MBBSEXEC.EXE or via the Sysop menu, you'll need to
  9593.                          rerun SPLITKEY.EXE, however, you can save time by
  9594.                          running it with the first initial of the user's
  9595.                          last name (before & after). For example, if you
  9596.                          change one of your user's last name from DOE to
  9597.                          SMITH, you would run SPLITKEY twice as follows:
  9598.                               SPLITKEY  D
  9599.                               SPLITKEY  S
  9600.                          This causes the SPLITKEY program to rebuild
  9601.                          USER_D.KEY and USER_S.KEY files.
  9602.  
  9603.     AMMO.MAG - Refer to the chapter on Remote Mail.
  9604.  
  9605.     NOCHANGE.LST - The [E]nvironment section of the main menu (where users
  9606.                    can change their system/personal paramters) is now
  9607.                    configurable by the Sysop as to which parameters may/may
  9608.                    not be changed. If you wish all parameters to be
  9609.                    changeable (as before), then do nothing! Otherwise,
  9610.                    create the file NOCHANGE.LST in your SESSION DIRectory.
  9611.                    This file is an ASCII text file which contains the
  9612.                    numbers (1 thru 27 in this release) of which parameters
  9613.                    you do NOT want your users to be able to change! For
  9614.                    example, if you don't want users to be able to change
  9615.                    System compression type (choice 1) or their birthdate
  9616.                    (choice 11), then the file NOCHANGE.LST would contain the
  9617.                    two menu numbers as follows:
  9618.                         1
  9619.                         11
  9620.                    The format of the file is one menu number per text line.
  9621.  
  9622.     BADNAME.LST  - This ASCII text file contains a list of UNallowable logon
  9623.                    names - one name per line, no imbedded spaces. See the
  9624.                    enclosed BADNAME.LST for an example.
  9625.  
  9626.     BADUPLD.LST  - This ASCII text file contains a list of UNallowable
  9627.                    filenames for upload - one name per line. Wildcards * and
  9628.                    ? are acceptable. Note that a semicolon (;) starts a
  9629.                    comment. In the event that a user tries to upload a file
  9630.  
  9631.  
  9632.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9633.  
  9634.  
  9635.  
  9636.     Back to Display Files & Subdirectories                         Page  6-5
  9637.     The SESSION DIRECTORY
  9638.  
  9639.  
  9640.                    who's filename matches one of those in this list, the
  9641.                    upload will be dissallowed. If the match is followed by
  9642.                    a comment (';' character), the comment will display,
  9643.                    otherwise Magnum will generate a message to the user.
  9644.                    An example BADUPLD.LST file might look like the
  9645.                    following:
  9646.                                *.EXE ; Please 'ARC' or 'ZIP' all uploads!
  9647.                                *.COM
  9648.                                *.LZH
  9649.                                PMDIARY?.* ; IBM internal pgm - not public!
  9650.                                PM-DIARY.* ; IBM internal pgm - not public!
  9651.                                CMD.EXE    ; License required to distribute!
  9652.  
  9653.     NOANSCHK.LST - Magnum checks your  SESSION DIRectory for  a file by  the
  9654.                    name of  NOANSCHK.LST (which  you optionally  create with
  9655.                    your text editor).   If it  finds it, it  checks the file
  9656.                    for filename  extensions NOT  to check  for harmful  ANSI
  9657.                    escape sequences after a file upload.  The file  contents
  9658.                    of of NOANSCHK.LST may look similar to the following:
  9659.  
  9660.                       ARC
  9661.                       ZIP
  9662.                       LZH
  9663.                       ZOO
  9664.                       GIF
  9665.                       BMP
  9666.  
  9667.                    Bascially, the contents of the file are the extensions of
  9668.                    filenames NOT to  run an ANSI  escape sequence check  on.
  9669.                    Because many compressed files  (such as ARC and  ZIP) can
  9670.                    inadvertantly reproduce a harmful ANSI escape sequence to
  9671.                    redefine a keyboard key when  typed to the screen, it  is
  9672.                    almost  meaningless  to  check  a compressed file because
  9673.                    once uncompressed into  its individual members,  this may
  9674.                    not  be  the  case.    It's  okay  to  check  files  with
  9675.                    extensions  of  EXE  and  COM  because  they  may contain
  9676.                    embedded  sequences,  however,  binary  files  can   also
  9677.                    inadvertantly  reproduce  one  of  these sequences.  ANSI
  9678.                    checking  is  mainly  helpful  for files containing text.
  9679.                    The program which  performs this checking  is CHKANSI.EXE
  9680.                    which is located in your EXTernal DIRectory.  The  format
  9681.                    of the NOANSCHK.LST  file is one  entry per line  of file
  9682.                    extensions  only  (do  not  supply  complete filenames or
  9683.                    wildcards) - only the extension is checked for a match.
  9684.  
  9685.     COMPRESS.LST - Magnum checks your  SESSION DIRectory for  a file by  the
  9686.                    name of  COMPRESS.LST (which  you optionally  create with
  9687.                    your text editor). If it finds it, it incorporates the
  9688.                    instructions within into the BBS. With COMPRESS.LST, you
  9689.                    can support whatever file compression schemes you wish.
  9690.                    You can support other file compression formats such as
  9691.                    .LZH or .ZOO for example.
  9692.  
  9693.  
  9694.  
  9695.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9696.  
  9697.  
  9698.  
  9699.     Page  6-6                         Back to Display Files & Subdirectories
  9700.                                                        The SESSION DIRECTORY
  9701.  
  9702.  
  9703.                    To support other file formats, create a file called
  9704.                    COMPRESS.LST in your SESSION DIRectory with your favorite
  9705.                    text editor. The format of this ASCII file is as follows
  9706.                    (via example):
  9707.  
  9708.                      Definitions for various file compressions.
  9709.                      Sample COMPRESS.LST file. Anything not starting with:
  9710.  
  9711.                                      .
  9712.                                      C=
  9713.                                      D=
  9714.                                      L=
  9715.                                      T=
  9716.                                      K=
  9717.  
  9718.                      will be treated as a comment line (ignored).
  9719.  
  9720.                      .ZIP:
  9721.                           C=PKZIP2.EXE -u %s
  9722.                           D=PKUNZIP2.EXE -o %s
  9723.                           L=PKUNZIP2.EXE -v %s
  9724.                           T=PKUNZIP2.EXE -t %s
  9725.                           K=PKZIP2.EXE -zq %s
  9726.                      .ARC:
  9727.                           C=ARC2.EXE u %s
  9728.                           D=ARC2.EXE x %s
  9729.                           L=ARC2.EXE l %s
  9730.                           T=ARC2.EXE t %s
  9731.                      .ZOO:
  9732.                           C=ZOO.EXE a %s
  9733.                           D=ZOO.EXE x %s
  9734.                           L=ZOO.EXE l %s
  9735.                     .LZH:
  9736.                           C=LH.EXE A %s
  9737.                           D=LH.EXE X %s
  9738.                           L=LH.EXE L %s
  9739.                           T=LH.EXE T %s
  9740.  
  9741.                    Note that the first nonspace character must begin with .
  9742.                    (the period character), or C= or D= or L= or T= or K= in
  9743.                    order for it to be a valid statement, otherwise the
  9744.                    entire text line is ignored (treated as a comment line).
  9745.                    The . character defines the file extension for that
  9746.                    particular file compression method. Therefore, .LZH: for
  9747.                    example, defines the external programs necessary to
  9748.                    process files ending with extensions of .LZH (don't
  9749.                    forget to end the extension with the : character).
  9750.                    Following .LZH: (for example), are four statements. The
  9751.                    first statement, beginning with the C= keyword, defines
  9752.                    the program name and parameters for COMPRESSING a file.
  9753.                    The %s needed in all definitions represents the file name
  9754.                    of the .LZH file and will be substituted with the .LZH
  9755.                    file name internally when Magnum processes the file.
  9756.  
  9757.  
  9758.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9759.  
  9760.  
  9761.  
  9762.     Back to Display Files & Subdirectories                         Page  6-7
  9763.     The SESSION DIRECTORY
  9764.  
  9765.  
  9766.                    Similar definitions exist for the D= keyword
  9767.                    (DECOMPRESS), L= (LIST Members),  T= (TEST integrity),
  9768.                    and K= (Add Comment). Note that in the above example,
  9769.                    there is no T= statement for .ZOO file processing. Not
  9770.                    that it doesn't exist, but the ZOO processing program we
  9771.                    tested didn't have this capability. It's ok to leave out
  9772.                    the T= keyword (or any other, but we haven't tested with
  9773.                    any keywords left out other than T). Now then, the
  9774.                    external compression/decompression program(s) must
  9775.                    conform to the following specifications:
  9776.  
  9777.                     - Must write their output to STDOUT when listing members
  9778.                       of a compressed file.
  9779.  
  9780.                     - Must reside in your EXTERNAL DIRectory (do not supply
  9781.                       path names in the COMPRESS.LST file).
  9782.  
  9783.                     - The %s parameter which represents the file Magnum will
  9784.                       be working with, can appear anywhere on the parameter
  9785.                       line to accomodate external programs requiring the
  9786.                       file name to appear before (as opposed to after) any
  9787.                       arguments.
  9788.  
  9789.                     - If the external program supports HPFS long filenames,
  9790.                       then your WORK DIRectories should all reside on an
  9791.                       HPFS drive. Please note that Magnum itself does NOT
  9792.                       support long filenames - this lack of support is
  9793.                       currently necessary to accomodate FAT systems. Support
  9794.                       for long filenames may appear in a future release.
  9795.  
  9796.                     - If the external program supports adding a comment (K=)
  9797.                       to the file, it must be able read this information
  9798.                       from STDIN (Magnum will redirect this information from
  9799.                       ZIPCMT.n, where n is node#).
  9800.  
  9801.                    Note that in our example COMPRESS.LST file above, we
  9802.                    provided definitions for .ARC and .ZIP formats. These
  9803.                    definitions are optional because these formats are
  9804.                    already built in. However, we provided these definitions
  9805.                    to show you how you can override the built-in
  9806.                    definitions for .ARC and .ZIP format. If you leave out
  9807.                    a X= keyword (ie: C=, D=, L=, K=, T=) then Magnum will
  9808.                    use its built-in definition.
  9809.  
  9810.                    You may define up to 10 different file compression
  9811.                    formats. In our example above, we've defined 4. We could
  9812.                    have left out .ZIP and .ARC, which still results in
  9813.                    Magnum understanding 4 formats since .ARC and .ZIP are
  9814.                    built in unless overridden in this file.
  9815.  
  9816.                    In the above example, Magnum will recognize that files
  9817.                    ending with .ARC, .ZIP, .LZH and .ZOO are compressed
  9818.                    files. You can [A]ccess these files (from file menu)
  9819.  
  9820.  
  9821.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9822.  
  9823.  
  9824.  
  9825.     Page  6-8                         Back to Display Files & Subdirectories
  9826.                                                        The SESSION DIRECTORY
  9827.  
  9828.  
  9829.                    without even providing a file extension. If you upload
  9830.                    a file TEST.LZH and Magnum finds a file by the name
  9831.                    of TEST.ZIP (or TEST.ZOO or TEST.ARC), it will disallow
  9832.                    the upload. It will allow TEST.DOC however because .DOC
  9833.                    is not defined as a compressed file format.
  9834.  
  9835.                    Please note that the support for any external file
  9836.                    compression or decompression programs is completely
  9837.                    optional, as is the existence of the COMPRESS.LST file
  9838.                    itself.
  9839.  
  9840.     USER.KEY     - This file is the USER database KEY file for the BBS. This
  9841.                    file will not exist until your first logon.
  9842.  
  9843.     USER.DAT     - This file is the USER database for the BBS. This file
  9844.                    will not exist until your first logon.
  9845.  
  9846.     FILE.DAT     - This file is the FILE database for the BBS. This file
  9847.                    will not exist until files are added or uploaded to the
  9848.                    BBS.
  9849.  
  9850.     MSG.DAT      - This file is the MESSAGE database containing message
  9851.                    header information. This file will not exist until
  9852.                    messages are entered via the BBS.
  9853.  
  9854.     RJE.DAT      - This file is the RJE database containing RJE record
  9855.                    information on who ran what jobs when, status of jobs,
  9856.                    etc. This file will not exist until your first logon.
  9857.  
  9858.     UTILIZ.DAT   - The utilization database (optional) - refer to the
  9859.                    TRACK_UTILIZATION keyword in your STARTUP.x file(s).
  9860.  
  9861.     MILC.SUB     - Magnum now looks for the existence of a new file
  9862.                    (optional) by the name of MILC.SUB in your SESSION
  9863.                    DIRectory. If found, it is used to signal Magnum to
  9864.                    substitute a specific character with another if found
  9865.                    in a @Zx variable.  For example, the MILC.SUB's file
  9866.                    contents might look like the following:
  9867.  
  9868.                            substitute ~ with "
  9869.                            126=34
  9870.                            substitute | with ^
  9871.                            124=94
  9872.  
  9873.                    The way it works is a statement such as x=y is
  9874.                    interpreted as "replace all characters with ASCII decimal
  9875.                    value x with ASCII decimal value y". All lines starting
  9876.                    with a non-digit are ignored (treated as a comment). In
  9877.                    the above example, 126 is the ASCII decimal value for the
  9878.                    tilde (~) character. 34 is the ASCII decimal value for
  9879.                    the double quote (") character. The statement 126=34
  9880.                    tells Magnum to replace any occurrence of the tilde (~)
  9881.                    character found in any @Zx string withe the double quote
  9882.  
  9883.  
  9884.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9885.  
  9886.  
  9887.  
  9888.     Back to Display Files & Subdirectories                         Page  6-9
  9889.     The SESSION DIRECTORY
  9890.  
  9891.  
  9892.                    (") character. Thus, the statement:
  9893.  
  9894.                                  @Z1="this is a ~test~ string";
  9895.  
  9896.                    would be stored (or printed) as:
  9897.  
  9898.                                  this is a "test" string
  9899.  
  9900.                    These automatic, nonreversible substitutions take place
  9901.                    only when a @Zx MILC statement is referenced. Although
  9902.                    this capability is powerful yet obscure, it does provide
  9903.                    an easy way of performing certain things not possible
  9904.                    before. For example, if you wanted to have double quotes
  9905.                    within a string to pass as a command line argument to a
  9906.                    program, this capability provides it. Before this
  9907.                    capability existed there was no way to accomplish this
  9908.                    task.
  9909.  
  9910.     QSECx.BBS    - This file is a quick way of sending a message to a
  9911.     QSECx.SCR      certain security level. When a user's security level
  9912.                    matches x, the file will be displayed to that user after
  9913.                    logon. The file will be sent to matching security levels
  9914.                    only once. The next time they log on, the file will not
  9915.                    be displayed. To send the contents of the file to all
  9916.                    level 100 users for example, simply name the file
  9917.                    QSEC100.BBS. ALL QSECx FILES ARE OPTIONAL!!
  9918.  
  9919.     SECx.BBS     - Identical to QSECx.BBS but will display EVERY TIME a user
  9920.     SECx.SCR       logs on who's security level matches x.
  9921.                    ALL SECx FILES ARE OPTIONAL!!
  9922.  
  9923.     IDx.BBS      - Similar to QSECx.BBS but x must match the user's ID (not
  9924.     IDx.SCR        security level). For example, to send the file to the
  9925.                    user who's ID matches 144, name the file ID144.BBS. Once
  9926.                    the file is displayed to that user, the file will be
  9927.                    deleted.
  9928.                    ALL IDx FILES ARE OPTIONAL!!
  9929.  
  9930.     BRDCAST.ALL  - For broadcasting a message to all or certain nodes having
  9931.     BRDCAST.n      users currently logged on.  These optional files can be
  9932.                    generated by you or an application program.  Refer to
  9933.                    chapter 2 (SES_DIR, BRDCAST.ALL and BRDCAST.n) for
  9934.                    details on the use of these optional files.
  9935.  
  9936.     PREBADV.BBS  - If your STARTUP file has a non-zero number in either the
  9937.     POSTBADV.BBS   VERIFY_DOB or VERIFY_PHONE fields, the behavior of Magnum
  9938.                    was to force the user into the message editor to explain
  9939.                    why a mismatch occurred.  Once the message was entered
  9940.                    and saved, the user was allowed to continue with their
  9941.                    session.  Starting with this release, the following is
  9942.                    performed instead:
  9943.  
  9944.                    1) Check for and display PREBADV.BBS (in SESSION DIR) if
  9945.  
  9946.  
  9947.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  9948.  
  9949.  
  9950.  
  9951.     Page  6-10                        Back to Display Files & Subdirectories
  9952.                                                        The SESSION DIRECTORY
  9953.  
  9954.  
  9955.                       it exists
  9956.                    2) Force message entry explaining why a mismatch occured
  9957.                    3) Check for and display POSTBADV.BBS (in SESSION DIR) if
  9958.                       it exists
  9959.  
  9960.                    This new method allows Magnum to function as it always
  9961.                    has if you do nothing.  If you have a PREBADV.BBS file,
  9962.                    you can display a message and implement MILC commands to
  9963.                    log the user off!  If you have a POSTBADV.BBS file, you
  9964.                    can display a message and implement MILC commands to log
  9965.                    the user off after forced message entry.  Typically,
  9966.                    you'd use one or the other file depending on whether you
  9967.                    want them to enter a message or not, but you could also
  9968.                    use both files if desired.  The names of these files are
  9969.                    short for "pre-bad-verify" and "post-bad-verify".
  9970.                    NOTE: If you're going to implement the use of these
  9971.                          files, we highly recommend the first four
  9972.                          characters of the file to be @C10 to insure that
  9973.                          the user is unable to stop display of the file with
  9974.                          their spacebar or <ctrl-x> keys.  The @C17 command
  9975.                          would actually end the session, so be sure to
  9976.                          include this command if this is your intention.
  9977.  
  9978.  
  9979.  
  9980.  
  9981.  
  9982.  
  9983.  
  9984.  
  9985.  
  9986.  
  9987.  
  9988.  
  9989.  
  9990.  
  9991.  
  9992.  
  9993.  
  9994.  
  9995.  
  9996.  
  9997.  
  9998.  
  9999.  
  10000.  
  10001.  
  10002.  
  10003.  
  10004.  
  10005.  
  10006.  
  10007.  
  10008.  
  10009.  
  10010.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10011.  
  10012.  
  10013.  
  10014.     Back to Display Files & Subdirectories                        Page  6-11
  10015.     The BULLETIN DIRECTORY
  10016.  
  10017.  
  10018.  
  10019.     Within the BULLETIN DIRECTORY, the following files should be found:
  10020.  
  10021.     BULLETIN.BBS - This is the file which is displayed by MAGNUM when a user
  10022.     BULLETIN.SCR   chooses to view the BULLETIN file. This file usually uses
  10023.                    MILC commands to act as a menu to include other files or
  10024.                    to branch to other areas of this file. Users are notified
  10025.                    if the date and/or time of this file has changed since
  10026.                    they're last logon.
  10027.  
  10028.     NEWSLTR.BBS  - This is the file which is displayed by MAGNUM when a user
  10029.     NEWSLTR.SCR    chooses to view the NEWSLETTER file. As with any other
  10030.                    display file, it may contain MILC commands to form a menu
  10031.  
  10032.     QUESTION.BBS - This is the file which is displayed by MAGNUM when a user
  10033.     QUESTION.SCR   chooses to view the QUESTIONAIRRE file. This file usually
  10034.                    uses MILC commands to act as a menu, perform I/O and log
  10035.                    user's answers to disk. A typical use might be for an
  10036.                    online order system in which users place orders with
  10037.                    their credit cards.
  10038.  
  10039.     QUESNEW.BBS  - If you've configured MAGNUM such that the GET_QUESTION
  10040.     QUESNEW.SCR    parm is Y, then the contents of this file is displayed.
  10041.                    This file will typically have MILC commands which will
  10042.                    perform I/O and log the user's answers to disk. This
  10043.                    file will be presented only once to every user who calls
  10044.                    for the first time.
  10045.  
  10046.  
  10047.  
  10048.  
  10049.  
  10050.  
  10051.  
  10052.  
  10053.  
  10054.  
  10055.  
  10056.  
  10057.  
  10058.  
  10059.  
  10060.  
  10061.  
  10062.  
  10063.  
  10064.  
  10065.  
  10066.  
  10067.  
  10068.  
  10069.  
  10070.  
  10071.  
  10072.  
  10073.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10074.  
  10075.  
  10076.  
  10077.     Page  6-12                        Back to Display Files & Subdirectories
  10078.                                                           The MENU DIRECTORY
  10079.  
  10080.  
  10081.  
  10082.     Within  the  MENU  DIRECTORY,  the  following  files  should  be  found.
  10083.     However, ALL FILES in this directory are OPTIONAL.  IF NOT FOUND, MAGNUM
  10084.     builds it's own menus dynamically and displays that instead.
  10085.  
  10086.     MAINMENU.BBS - Create your own MAIN menu in this file. If the file
  10087.     MAINMENU.SCR   exists, it will override the dynamic menu MAGNUM builds
  10088.                    and displays.
  10089.  
  10090.     FILEMENU.BBS - Create your own FILE menu in this file. If the file
  10091.     FILEMENU.SCR   exists, it will override the dynamic menu MAGNUM builds
  10092.                    and displays.
  10093.  
  10094.     MSGMENU.BBS  - Create your own MESSAGE menu in this file. If the file
  10095.     MSGMENU.SCR    exists, it will override the dynamic menu MAGNUM builds
  10096.                    and displays.
  10097.  
  10098.     SYSMENU.BBS  - Create your own SYSOP menu in this file. If the file
  10099.     SYSMENU.SCR    exists, it will override the dynamic menu MAGNUM builds
  10100.                    and displays.
  10101.  
  10102.     RJEMENU.BBS  - Create your own RJE menu in this file. If the file
  10103.     RJEMENU.SCR    exists, it will override the dynamic menu MAGNUM builds
  10104.                    and displays.
  10105.  
  10106.     NOTE: With the use of imbedded MILC commands, you can effectively create
  10107.           one menu file per section which will look different to every
  10108.           security level. You can even have it appear differently for a
  10109.           particular user!
  10110.  
  10111.  
  10112.  
  10113.  
  10114.  
  10115.  
  10116.  
  10117.  
  10118.  
  10119.  
  10120.  
  10121.  
  10122.  
  10123.  
  10124.  
  10125.  
  10126.  
  10127.  
  10128.  
  10129.  
  10130.  
  10131.  
  10132.  
  10133.  
  10134.  
  10135.  
  10136.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10137.  
  10138.  
  10139.  
  10140.     Back to Display Files & Subdirectories                        Page  6-13
  10141.     The HELP DIRECTORY
  10142.  
  10143.  
  10144.  
  10145.     Within  the  HELP  DIRECTORY,  the  following  files  should  be  found.
  10146.     However, ALL FILES in this directory are OPTIONAL.  IF NOT FOUND, MAGNUM
  10147.     simply sends the user the "Help not available" message.
  10148.  
  10149.     MAINHELP.BBS - This is the file which is displayed when a user chooses
  10150.     MAINHELP.SCR   the HELP option for the MAIN menu.
  10151.  
  10152.     FILEHELP.BBS - This is the file which is displayed when a user chooses
  10153.     FILEHELP.SCR   the HELP option for the FILE menu.
  10154.  
  10155.     MSGHELP.BBS  - This is the file which is displayed when a user chooses
  10156.     MSGHELP.SCR    the HELP option for the MESSAGE menu.
  10157.  
  10158.     SYSHELP.BBS  - This is the file which is displayed when a user chooses
  10159.     SYSHELP.SCR    the HELP option for the SYSOP menu.
  10160.  
  10161.     RJEHELP.BBS  - This is the file which is displayed when a user chooses
  10162.     RJEHELP.SCR    the HELP option for the RJE menu.
  10163.  
  10164.  
  10165.     NOTE: With the use of imbedded MILC commands, you can effectively create
  10166.           one HELP file per section which will look different to every
  10167.           security level. You can even have it appear differently for a
  10168.           particular user!
  10169.  
  10170.  
  10171.  
  10172.  
  10173.  
  10174.  
  10175.  
  10176.  
  10177.  
  10178.  
  10179.  
  10180.  
  10181.  
  10182.  
  10183.  
  10184.  
  10185.  
  10186.  
  10187.  
  10188.  
  10189.  
  10190.  
  10191.  
  10192.  
  10193.  
  10194.  
  10195.  
  10196.  
  10197.  
  10198.  
  10199.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10200.  
  10201.  
  10202.  
  10203.     Page  6-14                        Back to Display Files & Subdirectories
  10204.                                                        The DISPLAY DIRECTORY
  10205.  
  10206.  
  10207.  
  10208.     Within  the  DISPLAY  DIRECTORY,  the  following  files should be found.
  10209.     However, ALL FILES in this directory are OPTIONAL.  IF NOT FOUND, MAGNUM
  10210.     simply sends an error message to the console (if you are snooping on the
  10211.     session)  -  otherwise,  the  remote  USER  is  not  aware  of  anything
  10212.     different.  Any error messages you  see as a "snooping sysop" are  to be
  10213.     taken  as  warnings  only  -  the  remote  user never sees these warning
  10214.     messages.
  10215.  
  10216.     NOTE THAT ALL FILES LISTED BELOW CAN EXIST IN EITHER .BBS or .SCR FORMAT
  10217.     (or both).  THE ONLY EXCEPTIONS TO THIS ARE:
  10218.  
  10219.          PRELOG.BBS,  LOWBAUD.BBS,  CLOSED.BBS, QUOTES.BBS and OPEN.BBS
  10220.  
  10221.     DO NOT CREATE ANY .SCR FILES FOR THE ABOVE 5 FILES!!
  10222.  
  10223.     HELLO1.BBS   - Displayed after the user successfully logs on.
  10224.  
  10225.     HELLO2.BBS   - Displayed after HELLO1.BBS
  10226.  
  10227.     HELLO3.BBS   - Displayed after HELLO2.BBS
  10228.  
  10229.     NEWUSER.BBS  - Displayed after logon IF this is the user's FIRST logon.
  10230.  
  10231.     BIRTHDAY.BBS - If you've configured MAGNUM to ask new users for their
  10232.                    birth dates, MAGNUM compares their birthdate with the
  10233.                    current date. If it matches, the contents of this file
  10234.                    is displayed.
  10235.  
  10236.     GOODBYE.BBS  - Displayed when the user logs off.
  10237.  
  10238.     PRELOG.BBS   - Displays BEFORE the LOGIN: prompt.
  10239.  
  10240.     LOWBAUD.BBS  - Displays if the user's baud rate is LOWER than the lowest
  10241.                    acceptable baud rate you've defined in the STARTUP.x file
  10242.  
  10243.     CLOSED.BBS   - Displays IF you're running a CLOSED BBS and the new
  10244.                    user's name is not found in the USER database.
  10245.  
  10246.     OPEN.BBS     - Displays IF you're running an OPEN BBS and the user's
  10247.                    user's name is not found in the USER database. This is an
  10248.                    ideal place to place present the user with some
  10249.                    information about the BBS and ask them if they wish to
  10250.                    continue to log on as a new user. You can terminate their
  10251.                    session with MILC command @C17 if they do not wish to
  10252.                    continue.
  10253.  
  10254.     QUOTES.BBS   - Displays at logoff. The quote sent is equal to the number
  10255.                    of times the caller has called modulus the number of
  10256.                    quotes in the file. The file should have the folloing
  10257.                    format:
  10258.  
  10259.                        %50
  10260.  
  10261.  
  10262.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10263.  
  10264.  
  10265.  
  10266.     Back to Display Files & Subdirectories                        Page  6-15
  10267.     The DISPLAY DIRECTORY
  10268.  
  10269.  
  10270.                        %1  This is Quote #1
  10271.                        %2  This is Quote #2. Any quote can use
  10272.                            as many lines as you want.
  10273.                        %3  This is Quote #3.
  10274.                        .
  10275.                        .
  10276.                        .
  10277.                        %50 This is Quote #50.
  10278.  
  10279.                    The way this file works is as follows: The very first
  10280.                    line in the file is a %x where x is the number of quotes
  10281.                    in the file. After that, every quote is numbered with %x
  10282.                    where x ranges from 1 to x. There should be NO SPACES
  10283.                    between the % character and the quote# (x). The %
  10284.                    character should appear in column 1. 50 is the limit used
  10285.                    in this example - your actual file can contain as many
  10286.                    quotes as you wish.
  10287.  
  10288.     PREUP.BBS    - Displayed prior to the user performing an upload.
  10289.  
  10290.     POSTUP.BBS   - Displayed after the user performs an upload.
  10291.  
  10292.     PREDOWN.BBS  - Displayed prior to the user performing a download.
  10293.  
  10294.     POSTDOWN.BBS - Displayed after the user performs a download.
  10295.  
  10296.     UDRATIO.BBS  - Displayed when the user's upload/download ratio has been
  10297.                    exceeded.
  10298.  
  10299.     PRELIST.BBS  - Displayed prior to performing a LIST FILEs command.
  10300.  
  10301.     NEWMSG.BBS   - Displays when a user chooses "[E]nter New Message".  This
  10302.                    file is an ideal place to put some brief information as
  10303.                    to what ID to write to for "Tech Support", "Marketing
  10304.                    Information", etc.
  10305.  
  10306.     FILESRCH.BBS - Displays (if exists) in lieu of the built-in text when
  10307.                    the "[T]ext Search" function of the file menu is chosen.
  10308.  
  10309.  
  10310.  
  10311.  
  10312.  
  10313.  
  10314.  
  10315.  
  10316.  
  10317.  
  10318.  
  10319.  
  10320.  
  10321.  
  10322.  
  10323.  
  10324.  
  10325.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10326.  
  10327.  
  10328.  
  10329.     Page  6-16                        Back to Display Files & Subdirectories
  10330.                                                       The EXTERNAL DIRECTORY
  10331.  
  10332.  
  10333.  
  10334.     The following are the files (programs, text, .cmd files, etc) which are
  10335.     called/displayed by MAGNUM:
  10336.  
  10337.     CMD.EXE      - As long as this file (included with OS/2) is in your PATH
  10338.                    statement (CONFIG.SYS file), it does NOT have to be
  10339.                    placed here!
  10340.  
  10341.     ARC2.EXE     - Called when the user wishes to create/view a .ARC file.
  10342.                    NOTE: NOT INCLUDED WITH THE BBS PACKAGE BUT AVAILABLE FOR
  10343.                          DOWNLOAD FROM GILMORE SYSTEM'S BBS.
  10344.  
  10345.     PKZIP2.EXE   - Called when the user wishes to create a .ZIP file.
  10346.  
  10347.     PKUNZIP2.EXE - Called when the user wishes to view a .ZIP file.
  10348.  
  10349.     UNZIP16.EXE  - This program should be downloaded from our BBS and
  10350.                    renamed to PKUNZIP2.EXE (as of this writing, PK-Ware has
  10351.                    NOT released an OS/2-equivalent of the v2.04G format of
  10352.                    their ZIP utils --- UNZIP16.EXE is a 'clone' which DOES
  10353.                    understand the 2.04G ZIP format).
  10354.  
  10355.     ZIPCMT.x     - A text file (x=node number) which, if exists, gets placed
  10356.                    into any uploaded .ZIP file as a "ZIP file comment".
  10357.                    Useful for advertising your BBS, etc. Requires PKZIP2.EXE
  10358.  
  10359.     CHKANSI.EXE  - Called after every upload, and after every message
  10360.                    entered. Checks if the uploaded file or new message has
  10361.                    any harmful ANSI escape sequences imbedded within which
  10362.                    may redefine your (or another user's) keyboard when
  10363.                    viewed. If harmful escape sequences are found, MAGNUM
  10364.                    automatically locks the user out of the system and logs
  10365.                    them off! Included with the package.
  10366.  
  10367.     CHILDREN.BBS - Menu for external programs (known as 'doors' on DOS
  10368.     CHILDREN.SCR   BBS's). The way this works is that upon exit of
  10369.                    displaying this file, the variable @Z0 should hold the
  10370.                    program name (no path or drive, just program name),
  10371.                    variable @Z1 should hold command line arguments to be
  10372.                    passed to the child (if any), and @N0 should hold either
  10373.                    0 or 1 where 0=child handles local echo, 1=door handles
  10374.                    local echo. Subject to change. See our example
  10375.                    CHILDREN.BBS file (included).
  10376.  
  10377.  
  10378.  
  10379.  
  10380.  
  10381.  
  10382.  
  10383.  
  10384.  
  10385.  
  10386.  
  10387.  
  10388.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10389.  
  10390.  
  10391.  
  10392.     Back to Display Files & Subdirectories                        Page  6-17
  10393.     The RJE DIRECTORY
  10394.  
  10395.  
  10396.  
  10397.     When  the  [L]ist/Execut  option  of  the  RJE  menu is chosen, the file
  10398.     RJELIST.BBS (or RJELIST.SCR) is displayed - this file is expected to  be
  10399.     found in the RJE DIRECTORY.  Any program started from this file, or  any
  10400.     other display file (with the @E1 command), will be expected to be  found
  10401.     in this subdirectory.
  10402.  
  10403.     Output files created by your RJE programs are usually ARC'd or ZIP'd and
  10404.     placed in the  RJE RESULTS AREA  (one of your  file download areas)  for
  10405.     download (placed there with ADDRJE.EXE).  File naming convention used is
  10406.     Ux@y.ZIP - where  x is the  user's ID number,  and y ranges  from 0 to F
  10407.     (hex) - if there are already 16  files to the user's name, no more  will
  10408.     be allowed.   All files in  this section are  automatically private with
  10409.     the  user's  logon  password  (if  the  user's logon password exceeds 10
  10410.     characters, only  the first  10 characters  are used  as the  password).
  10411.     Files created by  the [M]ake selection  of the [F]iles  menu are set  to
  10412.     expire  the  following  day,  or  will  be  deleted  as soon as the user
  10413.     successfully downloads it. If you'll be writing your own programs to run
  10414.     as RJE jobs, run ADDRJE.EXE without parms for instructions on its use.
  10415.  
  10416.  
  10417.  
  10418.  
  10419.  
  10420.  
  10421.  
  10422.  
  10423.  
  10424.  
  10425.  
  10426.  
  10427.  
  10428.  
  10429.  
  10430.  
  10431.  
  10432.  
  10433.  
  10434.  
  10435.  
  10436.  
  10437.  
  10438.  
  10439.  
  10440.  
  10441.  
  10442.  
  10443.  
  10444.  
  10445.  
  10446.  
  10447.  
  10448.  
  10449.  
  10450.  
  10451.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10452.  
  10453.  
  10454.  
  10455.     Page  6-18                        Back to Display Files & Subdirectories
  10456.                                                     The MESSAGE SUBDIRECTORY
  10457.  
  10458.  
  10459.  
  10460.     Where message  files go.   Any  messages which  are a  description of an
  10461.     available  file  for  download,  will  have  the  same  filename  as the
  10462.     downloadable file.  MSG DIRECTORY is the parent subdirectory, and  there
  10463.     MUST be  26 subdirectory  entries within  this directory,  named A to Z.
  10464.     (IE:  \magnum\msg\a, \magnum\msg\b ...  \magnum\msg\z).
  10465.  
  10466.  
  10467.  
  10468.  
  10469.  
  10470.  
  10471.  
  10472.  
  10473.  
  10474.  
  10475.  
  10476.  
  10477.  
  10478.  
  10479.  
  10480.  
  10481.  
  10482.  
  10483.  
  10484.  
  10485.  
  10486.  
  10487.  
  10488.  
  10489.  
  10490.  
  10491.  
  10492.  
  10493.  
  10494.  
  10495.  
  10496.  
  10497.  
  10498.  
  10499.  
  10500.  
  10501.  
  10502.  
  10503.  
  10504.  
  10505.  
  10506.  
  10507.  
  10508.  
  10509.  
  10510.  
  10511.  
  10512.  
  10513.  
  10514.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10515.  
  10516.  
  10517.  
  10518.     Back to Display Files & Subdirectories                        Page  6-19
  10519.     The WORK SUBDIRECTORY
  10520.  
  10521.  
  10522.  
  10523.     Temporary workspace to hold extracted members of .ARC or .ZIP files  and
  10524.     other temporary workspace needs.
  10525.  
  10526.     IMPORTANT: The WORK directory MUST BE UNIQUE for each node!!!  We
  10527.                recommend  d:\MAGNUM\WORK_DIR\1,  d:\MAGNUM\WORK_DIR\2, etc
  10528.                (where d: is the drive Magnum is installed on... make sure
  10529.                these directories exist!).
  10530.  
  10531.  
  10532.  
  10533.  
  10534.  
  10535.  
  10536.  
  10537.  
  10538.  
  10539.  
  10540.  
  10541.  
  10542.  
  10543.  
  10544.  
  10545.  
  10546.  
  10547.  
  10548.  
  10549.  
  10550.  
  10551.  
  10552.  
  10553.  
  10554.  
  10555.  
  10556.  
  10557.  
  10558.  
  10559.  
  10560.  
  10561.  
  10562.  
  10563.  
  10564.  
  10565.  
  10566.  
  10567.  
  10568.  
  10569.  
  10570.  
  10571.  
  10572.  
  10573.  
  10574.  
  10575.  
  10576.  
  10577.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10578.  
  10579.  
  10580.  
  10581.     Page  6-20                        Back to Display Files & Subdirectories
  10582.                                                      The SYSOUT SUBDIRECTORY
  10583.  
  10584.  
  10585.  
  10586.     ACTIVITY.x   - These files (x=1 for node 1, x=2 for node 2, etc) will be
  10587.                    created if they don't exist. They contain a summary of
  10588.                    activity on the board for the node they represent.
  10589.                    These ACTIVITY.x files can grow very large in a short
  10590.                    period of time. Therefore, it's a good idea to
  10591.                    periodically delete these ACTIVITY.x files from time to
  10592.                    time in order to conserve available disk space.
  10593.  
  10594.     SYSCHAT.LOG  - This file will be created the first time you SYSCHAT with
  10595.                    someone (not to be confused with GROUP chat). It will be
  10596.                    appended to with all subsequent SYSCHAT's. You may delete
  10597.                    this file anytime it gets too large. This file holds the
  10598.                    contents of your "chat" sessions.
  10599.  
  10600.     GRPCHAT.LOG  - This file will be created the first time 2 users speak
  10601.                    with each other via the Group Chat option. It will be
  10602.                    appended to with all subsequent Group Chat's. You may
  10603.                    delete this file anytime it gets too large but you must
  10604.                    terminate MBBS first. This file holds the contents of
  10605.                    all Group Chat's.
  10606.  
  10607.     *.R??        - Any questionairres you may have - anytime I/O is used to
  10608.                    write to disk with the @Z or @N commands, the responses
  10609.                    go to the same filename as what they're responding to,
  10610.                    only with an extension of .R?? where ?? is the node
  10611.                    number the user is on when they're responding to the
  10612.                    file. For example, if a user on node 2 is responding to
  10613.                    questions within the file QUESTION.BBS, the results will
  10614.                    be placed in QUESTION.R02.
  10615.  
  10616.  
  10617.  
  10618.  
  10619.  
  10620.  
  10621.  
  10622.  
  10623.  
  10624.  
  10625.  
  10626.  
  10627.  
  10628.  
  10629.  
  10630.  
  10631.  
  10632.  
  10633.  
  10634.  
  10635.  
  10636.  
  10637.  
  10638.  
  10639.  
  10640.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10641.  
  10642.  
  10643.  
  10644.     Back to Display Files & Subdirectories                        Page  6-21
  10645.     The USER SUBDIRECTORY
  10646.  
  10647.  
  10648.  
  10649.     The USER subdirectory holds files specific to your users.   For example,
  10650.     if you allow any of your users access to MILC commands @Zx or @Nx,  they
  10651.     have  the  ability  to  create  messages  which can ask questions of the
  10652.     reader and log their answers to a file.  Those 'answers' get logged to a
  10653.     file in the USER DIRectory under the same name as the message file.
  10654.  
  10655.     User  NotePads  are  also  kept  in  this  subdirectory.  Any user who's
  10656.     created one or  more notes will  have files in  this subdirectory.   The
  10657.     NotePad files have the following naming convention:
  10658.  
  10659.         IDxxxxx.NPT   - NotePad Titles for User ID xxxxx
  10660.         IDxxxxx.Nnn   - NotePad nn for User ID xxxxx (nn = 00 to 99)
  10661.  
  10662.     This is  for your  own information.   The  remote user  is oblivious  to
  10663.     Magnum's directory structure or file naming conventions.
  10664.  
  10665.  
  10666.  
  10667.  
  10668.  
  10669.  
  10670.  
  10671.  
  10672.  
  10673.  
  10674.  
  10675.  
  10676.  
  10677.  
  10678.  
  10679.  
  10680.  
  10681.  
  10682.  
  10683.  
  10684.  
  10685.  
  10686.  
  10687.  
  10688.  
  10689.  
  10690.  
  10691.  
  10692.  
  10693.  
  10694.  
  10695.  
  10696.  
  10697.  
  10698.  
  10699.  
  10700.  
  10701.  
  10702.  
  10703.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10704.  
  10705.  
  10706.  
  10707.  
  10708.  
  10709.  
  10710.  
  10711.  
  10712.  
  10713.  
  10714.  
  10715.  
  10716.  
  10717.  
  10718.  
  10719.  
  10720.  
  10721.  
  10722.  
  10723.  
  10724.  
  10725.  
  10726.  
  10727.  
  10728.  
  10729.  
  10730.  
  10731.  
  10732.  
  10733.  
  10734.  
  10735.  
  10736.                          This Page Intentionally Blank
  10737.  
  10738.  
  10739.  
  10740.     Using Magnum BBS as a USER                                     Page  7-1
  10741.  
  10742.  
  10743.  
  10744.     As a USER, either remote via modem, or local via the console, Magnum BBS
  10745.     software is fairly simple and self explanatory.  All menus offer  online
  10746.     help which you  can display by  choosing the [?]  command.  A  help file
  10747.     will be  displayed which  you've created  (or altered  from the  file we
  10748.     supply).  We have not supplied a help file for the Sysop menu, but  feel
  10749.     free to create  your own.
  10750.  
  10751.     A  few  'not-so-obvious'  usages  of  the  system  are command chaining.
  10752.     Whether  or  not  a  user  is using single-keystroke commands (hotkeys),
  10753.     command chaining  (also known  as command  stacking on  some systems) is
  10754.     available at  ANY prompt.   To  use command  chaining, simply begin your
  10755.     entry with the semicolon (;) character.  For example, if you are in  the
  10756.     Main Menu  and wish  to read  all mail  since the  last logon, you would
  10757.     enter:
  10758.  
  10759.          ;M;R;S
  10760.  
  10761.     Not only does this save time but omits displaying the actual menus  when
  10762.     commands are chained.  Unlike other systems, command chaining MUST START
  10763.     WITH THE SEMICOLON (;) CHARACTER!!
  10764.  
  10765.     Another not-so-commonly-known trick is to  stop the display of any  text
  10766.     file simply by hitting the <Ctrl-X>  key combination).  This way a  user
  10767.     is not forced to read through a file in its entirety if they do not want
  10768.     to.  There is a  command (see MILC) which you  can imbed in the file  to
  10769.     disable the ability to stop its display with <Ctrl-X>.
  10770.  
  10771.     One more shortcut you can use on  the system is the entry of dates  when
  10772.     responding to any date prompt.  For example, regardless of whether  your
  10773.     date setting  is European  or US  date format,  you can  enter a date in
  10774.     either  format  (MM/DD/YYYY  or  DD.MM.YYYY).    Your default dateformat
  10775.     setting is used by Magnum only for display purposes.  Also, you  needn't
  10776.     enter a 2-digit month, or a 2-digit day, or a 4-digit year.  As a matter
  10777.     of fact, the year is optional!   Magnum will assume the following  about
  10778.     dates:   If a  month or  day is  entered as  1-digit, it will internally
  10779.     convert it to 2-digits (by adding a leading 0).  If the year is omitted,
  10780.     the current year is assumed.  If a 1-digit year is entered, the  current
  10781.     decade is assumed.  If a 2-digit year is entered, the current century is
  10782.     assumed.    If  a  3-digit  year  is  entered,  the current millenium is
  10783.     assumed.  If a 4-digit year is entered, that year will be used.  By  way
  10784.     of example, the following  are all valid ways  of entering June 5,  1991
  10785.     (assuming the current year is 1991):
  10786.  
  10787.         06/05/1991      or    05.06.1991
  10788.         06/05/991             05.06.991
  10789.         06/05/91              05.06.91
  10790.         06/05/1               05.06.1
  10791.         06/05                 05.06
  10792.         06/5                  5.06
  10793.         6/05                  05.6
  10794.         6/5                   5.6
  10795.         6/5/1                 5.6.1
  10796.  
  10797.  
  10798.  
  10799.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10800.  
  10801.  
  10802.  
  10803.     Page  7-2                                     Using Magnum BBS as a USER
  10804.  
  10805.  
  10806.     There are  other combinations  to represent  the same  date, however the
  10807.     above should  provide a  sufficient example.   If  the current year were
  10808.     1991, and you  wish to express  June 5, 1990,  you could enter  6/5/0 or
  10809.     5.6.0 or 6/5/90 or 5.6.90.
  10810.  
  10811.     Magnum BBS will automatically inform  users if new mail has  arrived for
  10812.     them during the course of their  online session if the mail is NEW as of
  10813.     this session (checked every 60 seconds).
  10814.  
  10815.     When  in  the  [F]iles  menu,  users  tend  to  look  for a file such as
  10816.     ALLFILES.ARC or  similar name.   What  they're really  looking for  is a
  10817.     compressed file (ARC or ZIP) which contains a list of all the  available
  10818.     downloadable files on  the BBS.   Traditionally, most BBS  systems offer
  10819.     this file, which  is updated once  per day.   With Magnum, however,  the
  10820.     user simply chooses the [M]ake selection - Magnum will "make" an ARC  or
  10821.     ZIP file containing a list of  all available files on the BBS  according
  10822.     to  the  user's  selection  criteria.    The user is guaranteed that the
  10823.     created 'filelist'  will be  accurate as  of the  moment it was created.
  10824.     The user has until midnight that night to download the file - it will be
  10825.     automatically marked for deletion after  midnight and will no longer  be
  10826.     available  for  download.    The  created  filename  is  of  the  format
  10827.     Uxxxxx@y.ARC or  Uxxxxx@y.ZIP depending  on whether  ARC or  ZIP is  the
  10828.     default compression type in the user's profile.  The 'xxxxx' part of the
  10829.     filename is the user's ID number, and 'y' is the number of  downloadable
  10830.     files the user created  today.  'xxxxx' can  be from 1 to  5 digits, and
  10831.     'y' can  be a  hex number  from 0  to F.  In other  words, a filename of
  10832.     U12@0.ARC  is  read  as  "User  /12  filenumber  0". U5@B.ZIP is read as
  10833.     "User /5 filenumber 11".  Files of this type are automatically placed in
  10834.     the  RJE  subdirectory  and  are  password  protected  with  the  user's
  10835.     logon password.  Make sure you allow your users download capability from
  10836.     the RJE directory.
  10837.  
  10838.     The LOGIN prompt (ie:  Enter First  Name or /ID# => ) can accept  any of
  10839.     the following responses:
  10840.  
  10841.                   /ID#        ( ie:  /10 )
  10842.                   FirstName
  10843.                   FirstName LastName
  10844.                   FirstName MiddleInitial LastName
  10845.                   FirstName MiddleName LastName
  10846.  
  10847.     The LOGIN function is intelligent enough  to find a user whether or  not
  10848.     they use  their middle  name, or  whether or  not they  supply a  middle
  10849.     initial as opposed to a middle name.  The LOGIN prompt accepts up to  20
  10850.     characters of  input... if  the full  name (firstname  and lastname as a
  10851.     minimum) will fit within this space, it will be accepted.  If it exceeds
  10852.     this space,  supply firstname  followed by  ENTER, then  optional middle
  10853.     name followed by ENTER, then last name followed by ENTER.  In the  event
  10854.     of duplicate  first and  last names,  the middle  initial or middle name
  10855.     will be used to clarify further (ie:  JOHN D SMITH, JOHN S SMITH, etc).
  10856.  
  10857.  
  10858.  
  10859.  
  10860.  
  10861.  
  10862.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10863.  
  10864.  
  10865.  
  10866.     Using Magnum BBS as a USER                                     Page  7-3
  10867.     Handles (Alias Names)
  10868.  
  10869.  
  10870.  
  10871.     If  you  allow  handles  on  your  system  [ALLOW_HANDLES:  Y -- in your
  10872.     STARTUP  files(s)],  your  users  must  still  log onto the system using
  10873.     either their real name or their ID number.  Once on, everyone else  will
  10874.     know the user by their handle (and ID number).  Any/all messages entered
  10875.     by a user will bear their  handle within the message headers (ie:   FROM
  10876.     and/or TO fields), the user search function, who's on, and all other BBS
  10877.     functions which display a user's name will display their handle  instead
  10878.     (except for the Sysop and  CoSysop, message headers will show  the Sysop
  10879.     and CoSysop both the handle and real name).
  10880.  
  10881.     Users need not use handles, they may  choose to use or not use a  handle
  10882.     at first  logon or  (if permitted)  via the  main menu's "[E]nvironment"
  10883.     option #4.
  10884.  
  10885.     If  you'll  be  writing  any  kind  of programs (including Magnum's .mex
  10886.     programs), keep  in mind  that the  street1 field  will hold  either the
  10887.     user's handle  or company  name (check  the boolean  use_handle field to
  10888.     find out which).
  10889.  
  10890.  
  10891.  
  10892.  
  10893.  
  10894.  
  10895.  
  10896.  
  10897.  
  10898.  
  10899.  
  10900.  
  10901.  
  10902.  
  10903.  
  10904.  
  10905.  
  10906.  
  10907.  
  10908.  
  10909.  
  10910.  
  10911.  
  10912.  
  10913.  
  10914.  
  10915.  
  10916.  
  10917.  
  10918.  
  10919.  
  10920.  
  10921.  
  10922.  
  10923.  
  10924.  
  10925.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10926.  
  10927.  
  10928.  
  10929.     Page  7-4                                     Using Magnum BBS as a USER
  10930.                                                                The MAIN MENU
  10931.  
  10932.  
  10933.  
  10934.     The MAIN MENU, like any other menu in the system is SYSOP  configurable.
  10935.     The SYSOP can choose to have the menu appear however they want,  whether
  10936.     it's  built  dynamically  by  Magnum  (via  your STARTUP definitions) or
  10937.     whether it's an externally displayed  file.  Therefore, we will  use the
  10938.     definitions for the MAIN MENU (and all menu's for that matter)  supplied
  10939.     in our supplied STARTUP files for the purposes of documentation.
  10940.  
  10941.     The  MAIN  MENU,  as  with  any  other  menu  on  the system will appear
  10942.     differently for different users depending on their security level.   For
  10943.     example, you, as  SYSOP, should have  the highest security  level on the
  10944.     system... the [X]  option in the  main menu (Sysop  use only) should  be
  10945.     defined in  your STARTUP  files as  being available  to security  levels
  10946.     matching your  security level  as SYSOP.   Therefore,  users with  lower
  10947.     security levels  will not  even see  the [X]  option in  the main  menu.
  10948.     Likewise, users with  matching or greater  levels than those  defined by
  10949.     the individual menu  selections will see  those selections only  and not
  10950.     those requiring higher security levels.
  10951.  
  10952.     The MAIN MENU currently has 19 different menu selections.  We'll present
  10953.     these menu options one at a time:
  10954.  
  10955.                         MAINMENU_MSG: (menu selection M)
  10956.  
  10957.     This menu selection takes the user into the "Message Section" of the BBS
  10958.     where s/he  will be  presented with  the Message  Menu (see MESSAGE MENU
  10959.     later in this chapter).
  10960.  
  10961.                        MAINMENU_FILE: (menu selection F)
  10962.  
  10963.     This menu selection takes the user  into the "Files Section" of the  BBS
  10964.     where s/he will be presented with  the Files Menu (see FILES MENU  later
  10965.     in this chapter).
  10966.  
  10967.                         MAINMENU_RJE: (menu selection R)
  10968.  
  10969.     This selection takes the user into the "RJE Section" of the BBS where
  10970.     s/he will be presented with the RJE Menu (see RJE MENU later in this
  10971.     chapter).
  10972.  
  10973.                      MAINMENU_BULLETIN: (menu selection B)
  10974.  
  10975.     This  menu  selection  presents  the  user  with  the  BULLETIN.BBS file
  10976.     (expected to be  found in the  BULLETIN directory) which  you've created
  10977.     (or will create) with your text editor.  See MILC commands in an earlier
  10978.     chapter for  how to  create menuing  systems.   Because BULLETIN.BBS  is
  10979.     reported to a  user as being  changed if it's  been modified since  that
  10980.     last time the  user viewed the  BULLETIN.BBS file, it  is important that
  10981.     anytime you change any of the  "included" files brought up by this  file
  10982.     (if any), that you change the date of this file as well - otherwise, the
  10983.     user will  not be  notified of  an update  to bulletins.   What we do at
  10984.     Gilmore Systems, is to  present the user with  a choice of bulletins  to
  10985.     read via the BULLETIN.BBS file, and next to each choice we have the date
  10986.  
  10987.  
  10988.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  10989.  
  10990.  
  10991.  
  10992.     Using Magnum BBS as a USER                                     Page  7-5
  10993.     The MAIN MENU
  10994.  
  10995.  
  10996.     of last modification enclosed in parenthesis.
  10997.  
  10998.                      MAINMENU_QUESTION: (menu selection Q)
  10999.  
  11000.     This  menu  selection  presents  the  user  with  the  QUESTION.BBS file
  11001.     (expected to be be found in the BULLETIN directory) which you've created
  11002.     (or will create) with your text editor.  See MILC commands in an earlier
  11003.     chapter for how to create menuing systems.
  11004.  
  11005.                       MAINMENU_COMMENT: (menu selection C)
  11006.  
  11007.     This menu selection allows the user to enter the line editor or the ANSI
  11008.     message editor in order to leave  a private message to the sysop.   Once
  11009.     the user answers the prompt of  which editor they wish to use,  they can
  11010.     then enter a Comment (message) which will automatically be addressed  to
  11011.     the Sysop (ID:  /0) and marked as private (regardless of whether private
  11012.     messages are allowed or  not).  Unlike entering  a message to the  sysop
  11013.     from the MESSAGE section, the COMMENT selection from the main menu  does
  11014.     not prompt  the user  for any  header information  - the  user is  taken
  11015.     directly to the selected  editor for message entry.   If using the  line
  11016.     editor, enter  the word  "/EXIT" (without  quotes) on  a line by itself.
  11017.     The  main  menu's  [E]nvironment  option  also  lets a user change their
  11018.     profile such  that they  can end  message entry  with a  null line  (two
  11019.     successive ENTER's).  Up to 150  text lines are allowed for any  message
  11020.     entry, however, if your system is  running quite low on memory, it  will
  11021.     inform the user of the maximum number  of text lines it is able to  use.
  11022.     By the way,  "/EXIT" can be  shortened to "/EXI"  or "/EX" (all  without
  11023.     quotes of course), and is case independent.
  11024.  
  11025.                       MAINMENU_PAGESYS: (menu selection Y)
  11026.  
  11027.     This menu selection first checks to see whether the current time of  day
  11028.     coincides with the Sysop's  paging hours.  If  it does, AND the  Sysop's
  11029.     BELL parameter  is on  (see Sysop  console commands),  then Magnum  will
  11030.     audibly page  the Sysop  for 30  seconds.   The user  can terminate this
  11031.     paging earlier  by pressing  <Ctrl-X> at  their terminal.   If the Sysop
  11032.     wishes to "chat" with the user doing the paging, the sysop can switch to
  11033.     the user's session and  press <F7>.  If  the Sysop has not  pressed <F7>
  11034.     before the 30  second paging is  over, the user  is presented a  message
  11035.     stating "Sysop  not responding  to page...".   In  the event the current
  11036.     time of day does not coincide with the Sysop's paging hours, the user is
  11037.     notified of the Sysop's paging hours.
  11038.  
  11039.                         MAINMENU_WHO: (menu selection W)
  11040.  
  11041.     This menu selection will present the user with a list of users (by  ID#)
  11042.     of all who  are on the  system, regardless of  which computer (in  a LAN
  11043.     environment)  they're  logged  on  from.    See WHOS.ON in chapter 2 for
  11044.     additional information.
  11045.  
  11046.                        MAINMENU_CHAT: (menu selection S)
  11047.  
  11048.     This menu  selection allows  the user  to enter  GROUP CHAT  mode.  Many
  11049.  
  11050.  
  11051.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11052.  
  11053.  
  11054.  
  11055.     Page  7-6                                     Using Magnum BBS as a USER
  11056.                                                                The MAIN MENU
  11057.  
  11058.  
  11059.     Sysops disable  this feature  (assign a  security level  higher than any
  11060.     user to this function) because of abuse potential (fowl language,  etc),
  11061.     but many Sysops also enjoy having the feature enabled.  As a Sysop, this
  11062.     is your prerogative.  When a user chooses this menu selection, they will
  11063.     be placed in GROUP CHAT mode and can page others on the system and  send
  11064.     them immediate one-line private messages.   If two or more  people enter
  11065.     GROUP CHAT mode, they can converse with each other simply by typing back
  11066.     and forth.  While a user is typing, Magnum is collecting what they  type
  11067.     - when they reach the end  of a text line, automatic wordwrap  will work
  11068.     the same was  it does as  if they were  typing a message  in the message
  11069.     section.  Each time automatic  wordwrap happens, the line that  the user
  11070.     just finished typing (prior to  automatic wordwrap) will be sent  to all
  11071.     nodes.   This process  repeats until  the user  presses their ENTER key.
  11072.     The ENTER key merely  sends the current line.   The user can  also enter
  11073.     commands while in GROUP CHAT mode.  A command starts with the / (forward
  11074.     slash) character in column one.  The following commands are supported:
  11075.  
  11076.                        /HELP - presents the user with this list
  11077.                        /EXIT - End chat. Return to BBS.
  11078.        /MSG x "message text" - Send private msg to node x.
  11079.                      /NODE x - Page user on Node x.
  11080.                      /PAGEON - Allows you to be paged by others.
  11081.                     /PAGEOFF - Turns your pager off.
  11082.                        /TIME - Shows current time and time remaining.
  11083.                         /WHO - Identical to MAINMENU_WHO above.
  11084.  
  11085.     As  with  all  commands  on  a  Magnum  system,  case  is  unimportant -
  11086.     uppercase, lowercase,  or any  combination of  each are  all the same to
  11087.     Magnum.  As is the case for ending Message entry, ending GROUP CHAT  can
  11088.     be accomplished  by entering  one of  /EXIT, /EXI  or /EX  on a  line by
  11089.     itself.
  11090.  
  11091.                       MAINMENU_INITIAL: (menu selection I)
  11092.  
  11093.     Selection of  this menu  item redisplays  the initial  welcome screen by
  11094.     displaying  the  files  HELLO1.BBS  (or  HELLO1.SCR) thru HELLO3.BBS (or
  11095.     HELLO3.SCR).   If you  have colorful  ANSI graphics  in these screens or
  11096.     some special announcements, some users may want to have another look  at
  11097.     it and this menu selection enables them to do so without them having  to
  11098.     call back just to see those screens again.
  11099.  
  11100.                        MAINMENU_USERS: (menu selection U)
  11101.  
  11102.     This menu selection provides the user with a means of listing the  users
  11103.     in your  USER database.   When  a user  chooses this  menu selection,  a
  11104.     prompt  will  be  accompanied  by  an  explanation of the various ways a
  11105.     search  can  be  performed.    For  example,  if  the  user enters the *
  11106.     character in response to the prompt, ALL users in the USER database will
  11107.     be displayed including the dates of  their last call to the system.   If
  11108.     the user enters one or more characters of a user's last name, a list  of
  11109.     all users who's first  one or more letters  of their last name  matching
  11110.     the entry  will be  displayed.   If a  user wanted  to search by company
  11111.     name, they'd start  with the \  character - for  example, to search  for
  11112.  
  11113.  
  11114.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11115.  
  11116.  
  11117.  
  11118.     Using Magnum BBS as a USER                                     Page  7-7
  11119.     The MAIN MENU
  11120.  
  11121.  
  11122.     those from IBM,  they'd enter \IBM  - this would  result in matches  for
  11123.     IBM, IBM Corp, etc.  Note that the search will match the letters entered
  11124.     if it  finds it  ANYWHERE within  a company  name.   Lastly, a  user can
  11125.     cross-reference other  users according  to user  interests.   If a  user
  11126.     wanted to search for others who's interests were OS/2 and/or MUSIC, they
  11127.     would enter ?OS/2 MUSIC in response to the search criteria.  This  would
  11128.     result in a match for all users with an interest in OS/2 or MUSIC.
  11129.  
  11130.     NOTE: If the GEO_PRIVACY parm in your STARTUP.x file(s)  is  set to 'Y',
  11131.           then geographic information about any users will be omitted.
  11132.  
  11133.                        MAINMENU_PARMS: (menu selection E)
  11134.  
  11135.     This menu  selection allows  a user  to change  the parameters  in their
  11136.     profile.  Currently, 27 changeable parameters exist.  A typical  display
  11137.     may look something like the following:
  11138.  
  11139.        1) Default System Compression Type: ZIP
  11140.        2) End Message Entry with null line (line editor only): NO
  11141.        3) Your "page" switch is: ON
  11142.        4) Company: XYZ Corporation
  11143.        5) Street2: 123 Anystreet
  11144.        6) City: Anytown
  11145.        7) State or Province: CA
  11146.        8) Zip: 90067
  11147.        9) Country: USA
  11148.       10) Password (non shown for security purposes): ******
  11149.       11) BirthDate: 06/01/1955
  11150.       12) Phone1: 213-555-1234
  11151.       13) Phone2: 213-555-4321
  11152.       14) Computer: IBM PS/2 model 80
  11153.       15) Default File Xfer Protocol: None
  11154.       16) ANSI color: yes
  11155.       17) Display "More" prompt: yes
  11156.       18) Erase "More" prompt: yes
  11157.       19) Use Single Keystroke Commands (no C/R required): yes
  11158.       20) Your areas of personal interest:
  11159.       : OS/2 PM COMMUNICATIONS
  11160.       21) Lines per screen: 23
  11161.       22) Date Format (US, Europe): U
  11162.      Enter # to change (1- ), 0=display static info, N=Next page, Q=quit =>
  11163.  
  11164.     A user can change any of  the above parameters by entering it's  number.
  11165.     For example, to change ANSI color  from yes to no, the user  would enter
  11166.     16.  When prompted for ANSI color,  the user would supply N (no).   Note
  11167.     that selection 4 doubles as Company name or Handle (alias) depending  on
  11168.     system and user criteria for this option.
  11169.  
  11170.     Note that any of the  above parameters can be dissallowed  for changing:
  11171.     refer refer to NOCHANGE.LST in the SESSION DIR portion of Chapter 6.
  11172.  
  11173.     If the user wanted  to see their permanent  info, they could enter  0 at
  11174.     this point amd a display similar to the following would appear:
  11175.  
  11176.  
  11177.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11178.  
  11179.  
  11180.  
  11181.     Page  7-8                                     Using Magnum BBS as a USER
  11182.                                                                The MAIN MENU
  11183.  
  11184.  
  11185.  
  11186.       User ID: "/10"
  11187.       Security Level: 20
  11188.       First called on (mm/dd/yyyy): 12/27/1989
  11189.       Last  called on (mm/dd/yyyy): 01/07/1990
  11190.       Last new files search (mm/dd/yyyy): 01/01/1980
  11191.       File xfer CPS rate: 240
  11192.       Download limit per week: 700 files or 70000 K-bytes
  11193.       Conferences available to you: ABCEFGH
  11194.       Number of times you called: 12
  11195.       Minutes of connect time remaining for the week: 105 minutes
  11196.  
  11197.     Note that if a user chooses European date formats, all dates will be  in
  11198.     the format DD.MM.YYYY and all prompts requiring a date will also  expect
  11199.     the input to  be in this  format.  US  date formats are  in the form  of
  11200.     MM/DD/YYYY.
  11201.  
  11202.     If  the  user  chooses  N  (for  NEXT  page),  a  display similar to the
  11203.     following will display:
  11204.  
  11205.       23) Nulls to send after CR: 0
  11206.       24) "List Files" preference: None
  11207.       25) "Editor" preference: None
  11208.       26) Show Extended (long) File Descriptions during Listings: Y
  11209.       27) Internet E-mail address: id10@gilmore.com
  11210.      Enter # to change (23- ), 0=display static info, P=prev page, Q=quit =>
  11211.  
  11212.                        MAINMENU_STATS: (menu selection V)
  11213.  
  11214.     This menu selection displays system statistics.  A typical display might
  11215.     look like the following:
  11216.  
  11217.       MAGNUM BBS (r) (C)Copyright 1989 Gilmore Systems: Serial # 1989070000
  11218.       Parent (System) Serial#: 1989070000
  11219.       Magnum Version 5.00C4
  11220.       OS/2 Version: 1.30
  11221.       BBS Name: "Gilmore Systems Home of MAGNUM OS/2 BBS"
  11222.       BBS Started: July 14, 1989
  11223.       Total calls this node (node 1): 11241
  11224.       Sysop: Chuck B Gilmore
  11225.       Sysop Paging Hours: 00:00 to 23:59
  11226.       BBS settings: Parity=N, Databits=8, Stopbits=1
  11227.       Modem: USRobotics Dual Std
  11228.       DTE Initial: 19200 (locked)
  11229.       User Records: 2250
  11230.       Message Records: 2015
  11231.       File Records: 1022
  11232.       RJE Records: 115
  11233.       Last system restart: 10/17/1990 16:27:07.06
  11234.  
  11235.     As you  can see,  the list  describes the  Sysop's modem  and DTE  rate,
  11236.     number of records in the databases, number of callers for the particular
  11237.     node, paging hours, etc.   This enables users  to get a summary  of your
  11238.  
  11239.  
  11240.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11241.  
  11242.  
  11243.  
  11244.     Using Magnum BBS as a USER                                     Page  7-9
  11245.     The MAIN MENU
  11246.  
  11247.  
  11248.     BBS at a glance.
  11249.  
  11250.                        MAINMENU_CHILD: (menu selection D)
  11251.  
  11252.     This menu  option displays  the file  you created  (or will create) with
  11253.     your text editor by the name  of CHILDREN.BBS - the file is  expected to
  11254.     be found  in your  EXTERNAL directory.   See  MILC commands for creating
  11255.     menuing systems.  See CHILDREN.BBS in Chapter 2 for a description of how
  11256.     to communicate to Magnum which program to run and how it is to be run.
  11257.  
  11258.                        MAINMENU_NEWS: (menu selection N)
  11259.  
  11260.     The description of this menu  selection is identical to the  description
  11261.     given  for  MAINMENU_BULLETIN  except  that  the  filename which will be
  11262.     displayed  is  NEWSLTR.BBS  (expected  to  be  found  in  the   BULLETIN
  11263.     directory).
  11264.  
  11265.                       MAINMENU_GOODBYE: (menu selection G)
  11266.  
  11267.     This menu selection prompts the user  as to whether they really want  to
  11268.     end their session or not.  If Yes, they are prompted as to whether  they
  11269.     wish to leave  a Comment to  the Sysop prior  to disconnecting (See  the
  11270.     VERIFY_GOODBYE option in the STARTUP file).
  11271.  
  11272.                       MAINMENU_EXPERT: (menu selection T)
  11273.  
  11274.     This menu  selection is  actually a  toggle switch.   It simply reverses
  11275.     expert mode.   In other words,  if the user  has full (complete)  menus,
  11276.     choosing this selection will put the user in Expert mode (no menus, just
  11277.     a 1-line prompt showing valid menu characters).  If the user is  already
  11278.     in Expert mode, choosing this menu selection will put the user back into
  11279.     full-menu mode.
  11280.  
  11281.                        MAINMENU_HELP: (menu selection ?)
  11282.  
  11283.     This menu selection will display the MAINHELP.BBS (expected to be  found
  11284.     in the HELP  directory) if it  exists.  If  this file does  not exist, a
  11285.     "help not  available" message  will be  sent to  the user.   If the file
  11286.     exists, the contents will be displayed to the user.
  11287.  
  11288.                        MAINMENU_SYSOP: (menu selection X)
  11289.  
  11290.     This menu selection is usually set to the highest security level so that
  11291.     it is  only visible  and selectable  by the  Sysop.   Choosing this menu
  11292.     selection allows the user to enter the Sysop Menu.  See SYSOP MENU later
  11293.     in this chapter for more information.
  11294.  
  11295.                        MAINMENU_OPT1: (menu selection 1)
  11296.                        MAINMENU_OPT2: (menu selection 2)
  11297.  
  11298.     These menu selections  are normally turned  off by setting  the security
  11299.     level to that of  one higher than any  of your users unless  you plan on
  11300.     using them.  When selected, Magnum will display the file MAINOPT1.BBS or
  11301.  
  11302.  
  11303.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11304.  
  11305.  
  11306.  
  11307.     Page  7-10                                    Using Magnum BBS as a USER
  11308.                                                                The MAIN MENU
  11309.  
  11310.  
  11311.     MAINOPT2.BBS from your DISPLAY DIRectory if it exists.  These files  are
  11312.     created by you in order to supply 'hooks' to external programs in  areas
  11313.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  11314.     these files.
  11315.  
  11316.                        MSGMENU_BASEUP: (menu selection +)
  11317.                        MSGMENU_BASEDN: (menu selection -)
  11318.  
  11319.     These menu selections are to be used with the optional Extended  MsgBase
  11320.     module.  These commands are a 'shortcut' for a user to move to the  next
  11321.     available MsgBase or next preceding MsgBase s/he has access to.
  11322.  
  11323.  
  11324.  
  11325.  
  11326.  
  11327.  
  11328.  
  11329.  
  11330.  
  11331.  
  11332.  
  11333.  
  11334.  
  11335.  
  11336.  
  11337.  
  11338.  
  11339.  
  11340.  
  11341.  
  11342.  
  11343.  
  11344.  
  11345.  
  11346.  
  11347.  
  11348.  
  11349.  
  11350.  
  11351.  
  11352.  
  11353.  
  11354.  
  11355.  
  11356.  
  11357.  
  11358.  
  11359.  
  11360.  
  11361.  
  11362.  
  11363.  
  11364.  
  11365.  
  11366.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11367.  
  11368.  
  11369.  
  11370.     Using Magnum BBS as a USER                                    Page  7-11
  11371.     The MESSAGE MENU
  11372.  
  11373.  
  11374.  
  11375.     The Message Menu currently has 10 selections available:
  11376.  
  11377.                         MSGMENU_QUIT: (menu selection Q)
  11378.  
  11379.     This menu selection quits the  Message section, returning the user  back
  11380.     to the Main menu (see MAIN MENU earlier in this chapter).
  11381.  
  11382.                         MSGMENU_UPDT: (menu selection C)
  11383.  
  11384.     This menu selection allows the  user to choose which message  areas they
  11385.     want to  work on.   Note  that Magnum  will only  allow users  to choose
  11386.     message areas they are authorized  to use.  By choosing  this selection,
  11387.     users can  limit the  areas such  that only  areas coinciding with their
  11388.     interests are applied.
  11389.  
  11390.                         MSGMENU_READ: (menu selection R)
  11391.  
  11392.     This menu selection enters the  "Read Messages Submenu", where the  user
  11393.     specifies how and what they wish  to read.  The "Read Messages  Submenu"
  11394.     looks like the following:
  11395.  
  11396.       C = Change Conference Areas
  11397.       B = Backwards Read (newest first)
  11398.       D = Date to start from                    NOTE: Updates MsgPointers!
  11399.       M = Match Text
  11400.       R = by Reference #
  11401.       S = Since Last Read                       NOTE: Updates MsgPointers!
  11402.       U = To/From User (or to/from you)
  11403.       V = View MY unread mail
  11404.       + = Change to Next Succeeding MsgBase \__ Appears with Ext'd MsgBase!
  11405.       - = Change to Next Preceding MsgBase  /
  11406.       Q = Quit
  11407.  
  11408.     When choosing  most of  the options,  you'll see  a "Scanning"  message.
  11409.     This message is followed by a dot (.) for every 100 messages scanned.
  11410.  
  11411.     Note that choosing D  (or U and supplying  a date) will read  by posting
  11412.     date (not actual date)  in order to preserve  outside mail or mail  that
  11413.     was posted from other systems.
  11414.  
  11415.     Note that choosing suboptions D or S will update the user's "last  read"
  11416.     message references numbers in their user profile.  All other  selections
  11417.     will have no effect  on their "last read".   The rest of  the submenu is
  11418.     self explanatory.
  11419.  
  11420.     At  the  end  of  reading  any  message  (other  than  a Receipt message
  11421.     generated by Magnum), an  internal message disposition submenu  is built
  11422.     dynamically and  presented to  the user.   This  disposition submenu can
  11423.     have any combination of the following:
  11424.  
  11425.       [A]gain         (re-read message)
  11426.       [B]ackThread    (Appears when this is a response to a previous
  11427.  
  11428.  
  11429.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11430.  
  11431.  
  11432.  
  11433.     Page  7-12                                    Using Magnum BBS as a USER
  11434.                                                             The MESSAGE MENU
  11435.  
  11436.  
  11437.                        message. Choosing this option will find and display
  11438.                        the previous message. You must choose the
  11439.                        [N]oMoreThread option to get out of BackThread mode).
  11440.       [C]ontinuous    (perform continuous (nonstop) reading of messages. No
  11441.                        message disposition submenu appears after messages.
  11442.                        Continuous reading is for those who wish to capture
  11443.                        all messages to a file. Continuous reading will be
  11444.                        stopped if the user presses their <Ctrl-X> key
  11445.                        combination).
  11446.       [E]dit          (Appears if this message if from you, and it has not
  11447.                        been read by the addressee yet. If the message is
  11448.                        public, this option only appears if the message has
  11449.                        not been read by anyone else. Choosing this option
  11450.                        puts the message back into Magnum's line editor and
  11451.                        allows you to edit the message).
  11452.       [F]orward       (Appears if this message is to you. If you'd like
  11453.                        someone else to receive a copy of this message,
  11454.                        choosing this option will prompt you for that user's
  11455.                        ID).
  11456.       [K]ill          (delete message - appears only if message is to/from
  11457.                        you, and Sysop allows users to delete messages).
  11458.       [N]ext          (read next message)
  11459.       [O]rigin        (Appears when this is a response to a previous
  11460.                        message. Choosing this option will find the Origin,
  11461.                        or original message that started this thread).
  11462.       [P]rivate       (Appears if this message is a public message to/from
  11463.                        you. Choosing this option changes the message from
  11464.                        public to private).
  11465.       [P]ublic        (Appears if this message is a private message to/from
  11466.                        you. Choosing this option changes the message from
  11467.                        private to public).
  11468.       [Q]uit          (Quits the "Read Messages Submenu" and returns the
  11469.                        user back to the "Message Menu").
  11470.       [R]eply         (enter a reply to this message)
  11471.       [T]hread        (Appears when there is a response to this message.
  11472.                        Choosing this option will find and display the
  11473.                        response. You must choose the [N]oMoreThread option
  11474.                        to get out of Thread mode).
  11475.       [V]iew          (Appears only if the user viewing this message is the
  11476.                        creator of the message. If this user is allowed
  11477.                        access to MILC commands -in particular, @Zx and @Nx-
  11478.                        where answers can be logged to a file, this option
  11479.                        will show the user the answers to those questions).
  11480.       [+/-]           (Pressing the '-' key causes Magnum to read messages
  11481.                        in reverse chronological order. Pressing the '+' key
  11482.                        causes Magnum to read messages in chronological
  11483.                        order. This option will not appear when reading
  11484.                        'S'ince, or from 'D'ate options in the "read
  11485.                        messages" submenu).
  11486.  
  11487.     Normally,  the  default  choice  will  be  [N]ext.  Sometimes it will be
  11488.     [T]hread depending on whether you're reading sequentially or following a
  11489.     thread.    In  either  case,  the  default  choice  will  be  denoted by
  11490.  
  11491.  
  11492.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11493.  
  11494.  
  11495.  
  11496.     Using Magnum BBS as a USER                                    Page  7-13
  11497.     The MESSAGE MENU
  11498.  
  11499.  
  11500.     parenthesis instead of brackets - for example (N)ext instead of  [N]ext.
  11501.     When a default choice is  indicated on the message disposition  submenu,
  11502.     the user need only press their ENTER key to accept the default.
  11503.     NOTE: When [T]hread was previously chosen, and (T)hread is the default,
  11504.           Magnum will stay in this state until [N]oMoreThread is chosen!
  11505.  
  11506.     Note that 'H' is  an option available only  if logged on locally  (Sysop
  11507.     console).  It does not show up as an option.  The 'H' option, if chosen,
  11508.     will provide  a HARDCOPY  of the  message and  will prompt  you for  the
  11509.     filename or device name of where to print the hardcopy.  When performing
  11510.     a  hardcopy,  note  that  any  embedded  MILC commands are printed as is
  11511.     (unprocessed).
  11512.  
  11513.     NOTE: If you're the Sysop or CoSysop (security level of SYSOP_MAIL_LVL
  11514.           or greater), you may press <Ctrl-E> at the message disposition
  11515.           prompt in order to either modify the message text or message
  11516.           header.
  11517.  
  11518.                         MSGMENU_SCAN: (menu selection S)
  11519.  
  11520.     In  order  to  choose  this  option,  a  user must have chosen a default
  11521.     conference,  or  a  group  of  default conferences with the MSGMENU_UPDT
  11522.     (menu selection C) option.  By choosing this option, only the headers of
  11523.     the messages, but not the actual messages themselves, will be displayed.
  11524.  
  11525.                        MSGMENU_ENTER: (menu selection E)
  11526.  
  11527.     This  menu  selection  tells  Magnum  that  the  user  wishes to enter a
  11528.     message.    Magnum  will  respond  to  this  selection  with a series of
  11529.     prompts:
  11530.  
  11531.       Which Conference (? for list) =>
  11532.       Who is this message to? (/ID#, ALL, SYSOP, ?=UserList, blank quits) =>
  11533.             if the above is to /ID# or SYSOP, it will display:
  11534.               To "JOHN S DOE" (default=Y) (Y/N) =>
  11535.             as an example.
  11536.             if the above is to /ID# or SYSOP, and private messages are
  11537.             allowed on your system, the following will display:
  11538.               Is this a Private Messages (default=N) (Y=yes, N=no)(Y/N)=>
  11539.       Subject =>
  11540.       Expiration date (MM/DD/YYYY) or blank for None =>
  11541.       Do you want a receipt for this message (default=N) (Y/N) =>
  11542.       Editor Type: A)nsi, L)ine =>
  11543.  
  11544.     After the prompts have been answered,  the user will be in the  selected
  11545.     editor (line or ANSI) for message  entry.  The user may now  enter their
  11546.     message (or perform an  ASCII upload such that  no text line exceeds  72
  11547.     characters).  As the user  types their message, automatic wordwrap  will
  11548.     take place at the end of each  text line if necessary.
  11549.  
  11550.           * * * THE FOLLOWING TEXT IS FOR THE ANSI-EDITOR ONLY: * * *
  11551.                 ----------------------------------------------
  11552.  
  11553.  
  11554.  
  11555.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11556.  
  11557.  
  11558.  
  11559.     Page  7-14                                    Using Magnum BBS as a USER
  11560.                                                             The MESSAGE MENU
  11561.  
  11562.  
  11563.     The ANSI editor is self explanatory - all commands are at the top of the
  11564.     user's screen during message entry on lines 1-9.  The user can enter  up
  11565.     to 150 lines of message text.  The text entry "window" is on lines 10-22
  11566.     meaning the most current 13 lines of text are visible at any given time.
  11567.  
  11568.     NOTE: If the user changed their lines/page in the main menu's
  11569.           [E]nvironment section to a larger value than 23, Magnum will
  11570.           attempt to accomodate their increased screen length by offering
  11571.           a larger message entry area.
  11572.  
  11573.     A copy of the ANSI-EDITOR message entry screen is as follows:
  11574.  
  11575.      * * ANSI SCREEN CONTROLS IN EFFECT * *     | Ctrl-Key Combinations:
  11576.              /\                   //\\          | K=End (save) | T=Type Msg
  11577.            Ctrl-W                Ctrl-R         | Y=Delete Line| X=Play Msg
  11578.     < Ctrl-A    Ctrl-D > << Ctrl-Q    Ctrl-E >> | G=Delete Char| B=Ins Char
  11579.            Ctrl-Z                Ctrl-F         | L=Abort Msg  | O=Search
  11580.              \/                   \\//          | V=Insert Line| U=Srch/Repl
  11581.     Hit <ESC><ESC> for options.    Max 150 lines| I=TAB        | N=Goto Lin#
  11582.     Lines 1-13
  11583.     ------------------------------------------------------------------------
  11584.     _
  11585.  
  11586.  
  11587.  
  11588.  
  11589.  
  11590.  
  11591.  
  11592.  
  11593.  
  11594.  
  11595.  
  11596.  
  11597.     ------------------------------------------------------------------------
  11598.  
  11599.     The above sample entry screen is self-explanatory.  However, a couple of
  11600.     clarifications are warranted.   Firstly, the <ESC><ESC> option  (meaning
  11601.     to press your <ESC>  key twice in succession,  will present you with  an
  11602.     options menu.   This  options menu  will allow  you to  view the message
  11603.     header Magnum will be using in your message.  If you're responding to  a
  11604.     message, you'll be allowed to re-read the message you're responding  to,
  11605.     and  "quote"  text  lines  from  that  message  to  be brought into your
  11606.     message.  Automatic wordwrap and page (screen) scroll is in effect  when
  11607.     appropriate.  Depending  on whether you're  creating a new  message from
  11608.     scratch or responding to another message, other options which may appear
  11609.     in  the  options  menu  are  'RePlay Original Message', 'ReRead Original
  11610.     Message with  Marking Facilities',  and 'NotePad  Facilities'.   See the
  11611.     chapter entitled "NotePad  Facility" for more  information on using  the
  11612.     NotePad in conjunction with messages.
  11613.  
  11614.     IF YOU'RE LOGGED  ON LOCALLY:   You can use  your Ins, Del,  PgUp, PgDn,
  11615.     Home,  End  and  arrow/cursor   keys  in  addition  to   the  <Ctrl-key>
  11616.  
  11617.  
  11618.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11619.  
  11620.  
  11621.  
  11622.     Using Magnum BBS as a USER                                    Page  7-15
  11623.     The MESSAGE MENU
  11624.  
  11625.  
  11626.     combinations defined on top of the message entry screen.  The <Ctrl-End>
  11627.     key (available only  while online locally)  deletes all characters  from
  11628.     the current cursor position to the end of the line the cursor is on.
  11629.  
  11630.            * * * THE FOLLOWING TEXT IS FOR THE LINE-EDITOR ONLY: * * *
  11631.                  ----------------------------------------------
  11632.  
  11633.     If using the line editor, message entry is exited by entering one of the
  11634.     following (case independent) on a line by itself starting in column 1:
  11635.  
  11636.           /EXIT
  11637.           /EXI
  11638.           /EX
  11639.  
  11640.     Note that a user could also exit message entry by entering 2 consecutive
  11641.     CR's (press ENTER twice in a row, causing a NUL line) if they went  into
  11642.     their [E]nvironment (from Main Menu) and changed #2 to YES.  Once a user
  11643.     has exited message entry, another submenu will appear as follows:
  11644.  
  11645.        Edit Commands: [S]ave, [T]ype, [D]elete, [I]nsert, [C]ontinue,
  11646.                       [A]bort, [E]dit line, [R]eplace line, [G]o
  11647.  
  11648.     The [S]ave option saves the  message and prompts for CC  (Carbon Copies)
  11649.     if the message is  public and to an  individual user.  Note  that you'll
  11650.     also have a  chance to "attach"  (by pressing <Ctrl-A>)  a file to  your
  11651.     message.   An "attached"  file is  really a  file that's associated with
  11652.     your  message.    Anyone  having  the  read  rights  to your message may
  11653.     download the "attached" file.   The "attached" file is usually  a binary
  11654.     file (ie:   a .ZIP file,  although it can  be any format)  and bears the
  11655.     same name as the  actual message itself.   The real name of  the file is
  11656.     placed in the last line of the actual message in the form of:
  11657.         "If downloading attached file, rename to 'programs.zip'"
  11658.     "Attached" files reside in the MSG_DIR  (the parent), not in one of  the
  11659.     A, B, C...  Z subdirectories of MSG_DIR.  If using Magnum's Remote Mail,
  11660.     "attached" files transfer to a remote system along with the message!
  11661.  
  11662.     The [T]ype option  simply redisplays what's  been entered so  far to the
  11663.     user's screen.
  11664.  
  11665.     The [D]elete  option allows  the user  to delete  a line  or a  block of
  11666.     lines.
  11667.  
  11668.     The [I]nsert option  allows the user  to insert a  new line inbetween  2
  11669.     existing lines.
  11670.  
  11671.     The [C]ontinue option  places the user  back in message  entry mode from
  11672.     the point they left off at (last or highest line# they've entered).
  11673.  
  11674.     The [A]bort option aborts message entry altogether but first prompts the
  11675.     user as to whether an abort is their real intention or not.
  11676.  
  11677.     The  [E]dit  line  option  allows  a  user to change any character(s) or
  11678.     word(s) in a line to any other character(s) or word(s) in a line.
  11679.  
  11680.  
  11681.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11682.  
  11683.  
  11684.  
  11685.     Page  7-16                                    Using Magnum BBS as a USER
  11686.                                                             The MESSAGE MENU
  11687.  
  11688.  
  11689.  
  11690.     The [R]eplace line  option allows the  user to replace  an existing line
  11691.     with new text.
  11692.  
  11693.     The [G]o option allows a user to view their message exactly the way  any
  11694.     recipient (reader) of the message would see it - including processing of
  11695.     MILC commands.
  11696.  
  11697.     NOTE: When the [S]ave option is chosen, Magnum runs CHKANSI.EXE (in your
  11698.           EXTERNAL directory) to check the message for harmful ANSI escape
  11699.           sequences. If an ANSI escape sequence is found which can redefine
  11700.           a key on the keyboard (it can do this when someone else remotely
  11701.           reads the message on their keyboard), then Magnum will
  11702.           automatically delete the message, lock the user out of the system,
  11703.           and hang up. This is a built-in security precaution which can be
  11704.           removed by simply deleting (or renaming) the CHKANSI.EXE program
  11705.           in the EXTERNAL directory. In the event of a user lockout, Magnum
  11706.           will create a message to the Sysop about the lockout.
  11707.  
  11708.                         MSGMENU_KILL: (menu selection D)
  11709.  
  11710.     This option prompts the user for the Reference # (11 characters) of  the
  11711.     message s/he wishes to delete.  Magnum then checks to make sure that the
  11712.     message matching this reference # is either to or from the user - if  it
  11713.     is, Magnum deletes the message, otherwise the deletion is disallowed.
  11714.  
  11715.                         MSGMENU_SRCH: (menu selection T)
  11716.  
  11717.     This option prompts the user for a string of text.  Magnum then searches
  11718.     the message database (only areas  authorized to the user) for  this text
  11719.     string within  the SUBJECT  descriptions of  the messages.   Magnum then
  11720.     displays the headers (only) of the messages matching the search.
  11721.  
  11722.                        MSGMENU_CHECK: (menu selection P)
  11723.  
  11724.     This option is  identical to the  "Check Your Mail?   (Y/N) =>  " prompt
  11725.     which appears  after a  user logs  on (just  before displaying  the main
  11726.     menu).  It simply checks the message database for any mail addressed  to
  11727.     you which you have not yet read.
  11728.  
  11729.                       MSGMENU_GOODBYE: (menu selection G)
  11730.  
  11731.     This menu selection prompts the user  as to whether they really want  to
  11732.     end their session or not.  If Yes, they are prompted as to whether  they
  11733.     wish to leave  a Comment to  the Sysop prior  to disconnecting (see  the
  11734.     VERIFY_GOODBYE option in the STARTUP file).
  11735.  
  11736.                         MSGMENU_HELP: (menu selection ?)
  11737.  
  11738.     This menu selection will display  the MSGHELP.BBS (expected to be  found
  11739.     in the HELP  directory) if it  exists.  If  this file does  not exist, a
  11740.     "help not  available" message  will be  sent to  the user.   If the file
  11741.     exists, the contents will be displayed to the user.
  11742.  
  11743.  
  11744.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11745.  
  11746.  
  11747.  
  11748.     Using Magnum BBS as a USER                                    Page  7-17
  11749.     The MESSAGE MENU
  11750.  
  11751.  
  11752.  
  11753.                         MSGMENU_OPT1: (menu selection 1)
  11754.                         MSGMENU_OPT2: (menu selection 2)
  11755.  
  11756.     These menu selections  are normally turned  off by setting  the security
  11757.     level to that of  one higher than any  of your users unless  you plan on
  11758.     using them.  When selected, Magnum will display the file MSGOPT1.BBS  or
  11759.     MSGOPT2.BBS from your DISPLAY DIRectory  if it exists.  These  files are
  11760.     created by you in order to supply 'hooks' to external programs in  areas
  11761.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  11762.     these files.
  11763.  
  11764.                         MSGMENU_BASE: (menu selection M)
  11765.  
  11766.     This menu selection  is for those  who've purchased [and  installed] our
  11767.     'Extended MessageBase'  module.   If you're  not using  this module, you
  11768.     should raise the security  level of this menu  option such that it  does
  11769.     not appear on any user's screen.
  11770.  
  11771.  
  11772.  
  11773.  
  11774.  
  11775.  
  11776.  
  11777.  
  11778.  
  11779.  
  11780.  
  11781.  
  11782.  
  11783.  
  11784.  
  11785.  
  11786.  
  11787.  
  11788.  
  11789.  
  11790.  
  11791.  
  11792.  
  11793.  
  11794.  
  11795.  
  11796.  
  11797.  
  11798.  
  11799.  
  11800.  
  11801.  
  11802.  
  11803.  
  11804.  
  11805.  
  11806.  
  11807.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11808.  
  11809.  
  11810.  
  11811.     Page  7-18                                    Using Magnum BBS as a USER
  11812.                                                               The FILES MENU
  11813.  
  11814.  
  11815.  
  11816.     The Files Section of Magnum provides some powerful features.  Before  we
  11817.     get into the menu definitions,  let's start with a brief  explanation of
  11818.     some of the unique built-in features.  Firstly, Magnum assigns a  number
  11819.     (#nnnnn) to  every file  in your  file database(s).   This  #nnnn is the
  11820.     record number  of any  particular file  in the  file listings.   At  any
  11821.     prompt  within  the  file  section  which  requests  a filename, you may
  11822.     provide the  #nnnnn instead  (start with  the #  character).  The #nnnnn
  11823.     number method is  *extremely* fast!   Note however, that  #nnnnn numbers
  11824.     will change after any time you  perform a pack of the file  database(s).
  11825.     Magnum's file section also has the ability to 'mark' files for download.
  11826.     When the remote user performs a  file listing (and their MORE prompt  is
  11827.     set to come on after every  screenfull), part of the MORE prompt  is the
  11828.     [U]tils selection.   By choosing [U]tils,  the user can  'mark' the file
  11829.     for download, 'view'  the file and  members within if  it's a compressed
  11830.     file, 'read' the file if an ASCII text file, obtain 'info' on the  file,
  11831.     etc, without losing their place  in the file listings.   When 'D'ownload
  11832.     is finally chosen from the  files menu, marked files will  automatically
  11833.     be placed on the user's download list (s/he needn't re-enter them),  but
  11834.     will be given a chance to view and/or modify the marked files list prior
  11835.     to  actually  downloading.    Note  that  system-created files such as a
  11836.     compressed  file  listing  will  automatically  be  placed on the user's
  11837.     download list as a 'marked' file.  Any user-specific files generated  by
  11838.     the system are automatically placed on the user's download list at logon
  11839.     time if such files exist and were not downloaded.
  11840.  
  11841.     NOTE: If you're the Sysop, once you have a FileName entered at [U]tils
  11842.           prompt, you may press <Ctrl-E> to get to the same functions you'd
  11843.           have in the Sysop Menu for this particular file!
  11844.  
  11845.     Now for the menu selections of the File Section:
  11846.  
  11847.                        FILEMENU_QUIT: (menu selection Q)
  11848.  
  11849.     This selection exits the FILE section  and returns the user to the  MAIN
  11850.     menu of the BBS.
  11851.  
  11852.                        FILEMENU_INFO: (menu selection I)
  11853.  
  11854.     This selection  displays information  on a  file.   An example File Info
  11855.     follows:
  11856.  
  11857.       Filename: MAGCOM.ZIP
  11858.       File Area: E (This month's OS/2 uploads)
  11859.       Uploaded with YMODEM-G protocol
  11860.       Uploaded on 01/01/1990 at 06:41
  11861.       Size is 80896 bytes
  11862.       File was downloaded 35 times
  11863.       Date of last access or download was 01/08/1990
  11864.       Estimated download time: 5 minutes 24 seconds
  11865.  
  11866.       Brief (1-line) description:
  11867.       MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  11868.  
  11869.  
  11870.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11871.  
  11872.  
  11873.  
  11874.     Using Magnum BBS as a USER                                    Page  7-19
  11875.     The FILES MENU
  11876.  
  11877.  
  11878.  
  11879.       Detailed Description Exists. Would you like to view it? (Y/N) =>
  11880.  
  11881.     The "Estimated  download time"  will vary  from user  to user.   Because
  11882.     Magnum stores each  user's last CPS  (file transfer rate),  it uses that
  11883.     figure to determine how long it will take to download any other file  on
  11884.     the system.  If the caller  calls back at a different baud  rate, Magnum
  11885.     will adjust the user's stored CPS accordingly.
  11886.  
  11887.     All downloadable files have brief (1-line) descriptions associated  with
  11888.     them.  Some files have a detailed description associated with them.   If
  11889.     you display [I]nfo  on a file  with a detailed  description, Magnum will
  11890.     prompt you as  to whether you'd  like to view  the detailed description.
  11891.     The detailed description can be up to 150 lines of text in length.
  11892.  
  11893.     If a file has a detailed  description associated with it, the file  will
  11894.     show up in the file listings as having a '+' character in column 1  just
  11895.     before the file's date.
  11896.  
  11897.                        FILEMENU_LIST: (menu selection L)
  11898.  
  11899.     This selection  will list  all available  files on  the board (which the
  11900.     user's security level permits him/her  to know about).  Files  which are
  11901.     password protected will  not show up  in the listings  if the Sysop  has
  11902.     configured the  STARTUP for  that node  not to  show password  protected
  11903.     files.    Each  file  listed  takes  up  2  text lines plus a blank line
  11904.     separating it from the next file.  When choosing the [L]ist option,  the
  11905.     following prompt will appear:
  11906.  
  11907.        Area(s) to list (? for help, blank to quit) =>
  11908.  
  11909.     Note  that  prior  to  displaying  this  prompt, if the file PREDOWN.BBS
  11910.     exists, it will be displayed to the user prior to sending this prompt.
  11911.  
  11912.     This prompt requires the user  to press their ENTER key  after answering
  11913.     their  prompt  because  it  is  not  limited  to a single-keystroke.  By
  11914.     responding with  the ?  character, Magnum  will list  all available file
  11915.     areas authorized to be listed to the user.  File areas are labeled  from
  11916.     A to Z. The + or *  character tells Magnum to list ALL areas  authorized
  11917.     to be listed  to the user.   An example  of a file  appearing in a  file
  11918.     listing follows (note that if the file had an expiration date,  it would
  11919.     be displayed after the file size):
  11920.  
  11921.       + 01/01/1990 MAGCOM.ZIP      80896                       DLs: 45  #204
  11922.       MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  11923.  
  11924.     If a +  character appears in  column 1 (just  before the file  date), it
  11925.     signifies that  a detailed  description (up  to 150  text lines) exists,
  11926.     which can be viewed  by choosing the [I]nfo  option.  The rest  the file
  11927.     description  in  a  list  command  shows  the  date of upload, filename,
  11928.     filesize, it's expiration date (if  any), number of DownLoads, the  file
  11929.     number, and  a one-line  description of  the file.   This information is
  11930.     shown for every file appearing in a file List command.  If a user wanted
  11931.  
  11932.  
  11933.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11934.  
  11935.  
  11936.  
  11937.     Page  7-20                                    Using Magnum BBS as a USER
  11938.                                                               The FILES MENU
  11939.  
  11940.  
  11941.     to list  more than  one file  area at  a time  (but not all areas), they
  11942.     would enter the areas pertaining only  to what they wanted to see.   For
  11943.     example, if the  user wanted to  list just areas  C, H, K  and L, they'd
  11944.     respond to the following prompt as follows:
  11945.  
  11946.     -> Note that the file number (#204 in this example) can be used in
  11947.     -> response to any prompt requiring a file name, instead of the file
  11948.     -> name (answer the prompt with #204, not 204). Note that file numbers
  11949.     -> will change after anytime you perform a 'pack' of  the file database.
  11950.  
  11951.        Area(s) to list (? for help, blank to quit) => CHKL
  11952.  
  11953.     Note that responses of  "C,H,K,L" and "C H K L"  (without the  quotes of
  11954.     course), are also  valid responses.   Only 26 characters  are allowed in
  11955.     response  to  this  prompt  -  therefore,  any  commas (,) or spaces ( )
  11956.     imbedded in the user responses are extraneous and unncessary.
  11957.  
  11958.     NOTE: When listing files by area, Magnum searches the DISPLAY DIRectory
  11959.           for a matching FDIR_x.BBS (or FDIR_x.SCR) file, where 'x' is the
  11960.           same letter as that of the file area about to be displayed. For
  11961.           example, if the user replied to the above prompt with EHK, then
  11962.           Magnum would first display FDIR_E.BBS (if it exists) prior to
  11963.           displaying the files in area E, then FDIR_H.BBS (if it exists)
  11964.           prior to displaying the files in area H, then FDIR_K.BBS (if its
  11965.           exists) prior to displaying the files in area K.
  11966.  
  11967.     FOR USERS OF THE 'EXTENDED FILEBASE' MODULE:
  11968.  
  11969.           When in an 'extended' FileBase [a FileBase other than 0 (main)],
  11970.           Magnum searches the DISPLAY DIRectory for a matching FDIRcnnn.BBS
  11971.           (or FDIRcnnn.SCR) where 'c' is the File Area (A-Z) of FileBase nnn
  11972.           (where nnn can be 001 to 255). Note that nnn must ALWAYS be 3
  11973.           digits. If the matching file exists, Magnum displays it prior to
  11974.           listing the files in that area. For example, if the user is in
  11975.           FileBase 3 and wishes to list the files in area C of that
  11976.           FileBase, then Magnum will search for FDIRC003.BBS and display it
  11977.           prior to listing the files in area C of FileBase 3 if found. If
  11978.           not found, Magnum will simply go ahead and display the files in
  11979.           area C of FileBase 3. If logged on locally, or if snooping on a
  11980.           remote session, you'll see a message something like << File
  11981.           FDIRC003.BBS Not Found >> on your console (this will not show up
  11982.           on the remote user's end.
  11983.  
  11984.           Also, in response to any filename prompt, if using the Extended
  11985.           FileBase, a user may supply a filename any of four ways:
  11986.  
  11987.                  FILENAME.EXT
  11988.                  FILENAME.EXE:base
  11989.                  #nnnnn
  11990.                  #nnnnn:base
  11991.  
  11992.           Note that if they append the :base (ie: "filename.ext:2" for the
  11993.           file "filename.ext" in filebase 2), Magnum will switch to filebase
  11994.  
  11995.  
  11996.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  11997.  
  11998.  
  11999.  
  12000.     Using Magnum BBS as a USER                                    Page  7-21
  12001.     The FILES MENU
  12002.  
  12003.  
  12004.           2 in order to access the file. File can be "marked" from any
  12005.           combination of FileBases.
  12006.  
  12007.                         FILEMENU_DL: (menu selection D)
  12008.  
  12009.     This selection allows a user to download one or more files from the BBS.
  12010.     If  the  user  has  not  selected  a default file transfer protocol (via
  12011.     [E]nvironment selection from  main menu), the  user will be  prompted to
  12012.     choose a transfer protocol for this download:
  12013.  
  12014.        Single: X=Xmodem, C=Xmodem-CRC, 1=Xmodem-1K
  12015.         Batch: Y=Ymodem, G=Ymodem-G,   Z=Zmodem,   Q=Quit
  12016.  
  12017.        Transfer protocol (X,C,1,Y,G,Z,Q) =>
  12018.  
  12019.     Once a  download protocol  has been  established (note  that Ymodem-G is
  12020.     dissallowed by Magnum if the user has not made an error-correcting modem
  12021.     connection -  ie:   MNP, ARQ,  etc), the  user will  be prompted for the
  12022.     filename(s)  of  the  file(s)  s/he  wishes  to  download.   If the file
  12023.     transfer protocol chosen  is a Single-file  protocol, only one  filename
  12024.     will be accepted.  If it's a Batch protocol, up to 50 filenames will  be
  12025.     accepted.  When the user supplies a filename, Magnum makes sure the file
  12026.     exists in it's file database -  if it does, Magnum displays the  size of
  12027.     the file and estimated  download time of the  transfer.  If it  does not
  12028.     exist, Magnum informs  the user of  this.  If  the user supplied  a file
  12029.     extension of .ARC when it should've  been an extension of .ZIP (or  vice
  12030.     versa), Magnum corrects the entry and informs the user.  Magnum will not
  12031.     allow the same filename to be entered twice in any given Batch  download
  12032.     (just in  case the  user forgot  that s/he  already chose  the file  for
  12033.     download).
  12034.  
  12035.     NOTE: Multiple filenames can be supplied at any Filename prompt (if you
  12036.           choose a Batch protocol such as Ymodem, Ymodem-G or Zmodem) by
  12037.           leaving a space between filenames.  If using the extended FileBase
  12038.           module, filenames not in the current FileBase can be specified by
  12039.           entering:
  12040.  
  12041.                     filename.ext:bbb
  12042.                 or:
  12043.                     #nnnn:bbb
  12044.  
  12045.           where :bbb is the filebase (and #nnnn is the file-number).
  12046.           Note that once :bbb is specified, the actual filebase is changed
  12047.           to bbb in order to find that file!
  12048.  
  12049.     Magnum will inform the user to start the transfer at their end once  the
  12050.     filename(s) for download  have been completed.   The user  must refer to
  12051.     their communications program's  documentation for how  to invoke a  file
  12052.     transfer with their software.  Some communications programs such as  our
  12053.     MAGCOM program  will automatically  start a  Zmodem file  download -  no
  12054.     interaction with the user is required (not applicable to MAGCOM  version
  12055.     1.0). Zmodem Crash Recovery is supported by Magnum on aborted downloads.
  12056.  
  12057.  
  12058.  
  12059.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12060.  
  12061.  
  12062.  
  12063.     Page  7-22                                    Using Magnum BBS as a USER
  12064.                                                               The FILES MENU
  12065.  
  12066.  
  12067.     If logged on locally (console), Magnum will prompt you for a filespec to
  12068.     download  (local  copy)  to.    You  may  respond  with  just a pathname
  12069.     terminated by the \ character, Magnum will simply copy the file to  that
  12070.     path; however if you supply  a filename.ext after the path,  Magnum will
  12071.     use that instead.  Example:
  12072.               Filename to Download => MAG8DEMO.ZIP
  12073.               Copy to [d:][\path]filename[.ext] => C:\DLDIR\
  12074.  
  12075.     When  the  file  transfer  is  over,  Magnum  informs the user their CPS
  12076.     (characters per  second transfer  rate) if  successful, otherwise Magnum
  12077.     will display a "Xfer Failed or Cancelled" message.
  12078.  
  12079.     NOTE: Calculation of CPS file xfer rates on small files are simply not
  12080.           an accurate reflection of CPS rate due to the nature of trying to
  12081.           measure CPS rate on a small file.  Therefore, Magnum will only
  12082.           calculate the CPS rate of a file xfer if the file size is at least
  12083.           5 times the baudrate of the connection.  For example, a 2400-baud
  12084.           caller will have CPS rates calculated only for files whos sizes
  12085.           are 12,000 bytes or higher.
  12086.  
  12087.                         FILEMENU_UL: (menu selection U)
  12088.  
  12089.     This file selection allows a user to upload a file to the BBS.  The user
  12090.     will be presented the following series of prompts:
  12091.  
  12092.        Filename you will upload? (blank quits) =>
  12093.  
  12094.     Note that prior to displaying this prompt, if the file PREUP.BBS exists,
  12095.     it will be displayed to the user prior to sending this prompt.
  12096.  
  12097.     At this point, the user will  enter a filename for upload.   Magnum then
  12098.     checks to  see if  the file  exists in  the database.   If  it does, the
  12099.     upload will  be disallowed.   Magnum  will also  check to  see that  the
  12100.     filename is not CMD.EXE, COMMAND.COM, or  a device name - if it  is, the
  12101.     upload is disallowed.  Magnum also checks to see that the filename  does
  12102.     not contain special characters (ie:  <, >, |, etc) and that the filename
  12103.     extension  does  not  exceed  3  characters  (to  the  right  of  the  .
  12104.     character),  and  that  the  filename  does  not  exceed  12  characters
  12105.     (including the . character).   Magnum also searches BADUPLD.LST in  your
  12106.     SESSION DIRectory (if it exists) to make sure it's not in the bad upload
  12107.     list  (see  BADUPLD.LST  in  the  description  of  files  in the SESSION
  12108.     DIRectory).  NOTE: if the filename you supply already exists and you are
  12109.                        the original uploader of the file (or the sysop), you
  12110.                        may reupload the file - Magnum will retain the old
  12111.                        description and any extended description.
  12112.  
  12113.     Once Magnum has determined that the filename supplied is a valid  upload
  12114.     filename, it  will prompt  the user  for an  upload protocol (unless the
  12115.     user has a default protocol  selected in their environment).   Note that
  12116.     Magnum only allows 1 file to be  uploaded at any given time even if  the
  12117.     upload protocol being used for the transfer is a Batch protocol.
  12118.  
  12119.     Next, Magnum  will prompt  the user  for a  one-line description  of the
  12120.  
  12121.  
  12122.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12123.  
  12124.  
  12125.  
  12126.     Using Magnum BBS as a USER                                    Page  7-23
  12127.     The FILES MENU
  12128.  
  12129.  
  12130.     file:
  12131.  
  12132.        Please enter a one-line description of the file:
  12133.  
  12134.     Next, Magnum  will prompt  the user  as to  whether the  file should  be
  12135.     password protected:
  12136.  
  12137.        Do you want this file password protected? (Y/N) =>
  12138.  
  12139.     Next, Magnum will prompt the user for an expiration date:
  12140.  
  12141.        Do you want an expiration date for this file? (Y/N) =>
  12142.  
  12143.     If the user selects  Y, an expiration date  prompt will appear, and  the
  12144.     file will be deleted as of 00:00 on the expiration date.
  12145.  
  12146.     Next, if the user is allowed to  upload to more than one file area,  the
  12147.     following prompt will appear:
  12148.  
  12149.        Save file to which area? (? for list) =>
  12150.  
  12151.     When the user  answers this prompt,  Magnum will display  how many bytes
  12152.     are available on  the upload disk  drive containing the  directory which
  12153.     will house the upload.
  12154.  
  12155.     Next, Magnum will prompt the user  as to whether they'd like to  leave a
  12156.     detailed description of the file:
  12157.  
  12158.        Would you like to leave a more detailed description of
  12159.        the file in message form? (Y/N) =>
  12160.  
  12161.     If the user answers with Y,  Magnum will invoke the line editor  for the
  12162.     user to  enter up  to 150  text lines  describing additional information
  12163.     about the file.
  12164.  
  12165.     Next, Magnum informs the user that  it's ready to receive the file  - it
  12166.     tells the  user the  filename and  protocol it  expects.   Note that  if
  12167.     you're  logged  on  locally  (console),  Magnum  will prompt you for the
  12168.     source filename for a local copy.
  12169.     NOTE: When logged on locally (console), the source filename for the
  12170.           local copy may be specified as a pathname terminated by the \
  12171.           character (Magnum will append the filename you supplied to the
  12172.           path prior to the copy).  Example:
  12173.               Filename to Upload => MAG8DEMO.ZIP
  12174.               Copy to [d:][\path]filename[.ext] => C:\ULDIR\
  12175.  
  12176.     Once  the  transfer  completes  successfully,  Magnum checks the file by
  12177.     calling the CHKANSI.EXE program - if it finds any ANSI escape  sequences
  12178.     which redefine a keyboard key, it  locks the user out of the  system and
  12179.     disconnects.  If  the check is  successful (no harmful  escape sequences
  12180.     found), Magnum then  checks to see  if the uploaded  filename is a  .ZIP
  12181.     file - if it  is, it checks to  see if the file  ZIPCMT.x exists (x=node
  12182.     number user is on) - if it exists, it adds the contents of that file  to
  12183.  
  12184.  
  12185.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12186.  
  12187.  
  12188.  
  12189.     Page  7-24                                    Using Magnum BBS as a USER
  12190.                                                               The FILES MENU
  12191.  
  12192.  
  12193.     the .ZIP file as a ZIP comment.  Magnum then adds the file entry to  the
  12194.     database and displays the user's  CPS transfer rate and compensates  the
  12195.     user (if defined)  with time spent  for the upload,  and gives the  user
  12196.     credit for the upload.
  12197.     NOTE: In the event of Magnum locking out a user due to an upload
  12198.           containing harmful ANSI escape characters which will redefine
  12199.           keyboard key(s), Magnum will generate a message to the Sysop about
  12200.           this action. Because compressed files (ARC, ZIP) can sometimes
  12201.           reproduce this ANSI pattern, CHKANSI.EXE will lock the user out of
  12202.           the system even though there may not be any ANSI escape sequences
  12203.           to redefine the keyboard when the file is uncompressed.
  12204.        -> If you wish to disable this automatic checking of ARC, ZIP or
  12205.        -> files with other extensions, see the description of NOANSCHK.LST
  12206.        -> in the chapter entitled "Back to Display Files & Subdirectories",
  12207.        -> in the "SESSION Directory" section.
  12208.  
  12209.     If the uploaded file has an  extension of .ARC or .ZIP, Magnum  performs
  12210.     an integrity check on  the file.  If  the integrity check fails,  Magnum
  12211.     automatically deletes the file and no upload credit is acknowledged.
  12212.  
  12213.     NOTE: If the user uploads a .ZIP file which contains the member
  12214.           FILE_ID.DIZ, Magnum will automatically extract that member and use
  12215.           it as the extended (long) description.
  12216.  
  12217.                         FILEMENU_NEW: (menu selection N)
  12218.  
  12219.     This menu selection is identical to the [L]ist selection except that  it
  12220.     only lists files since the last  time the user selected the [N]ew  files
  12221.     selection.  NOTE that Magnum stores 27 separate dates for this selection
  12222.     for each user.  It stores the date this selection was last used for each
  12223.     of the  26 different  file areas  (A to  Z), and  for the  + (all files)
  12224.     selection.   The prompt  also gives  the user  a chance  to override the
  12225.     default  date.    When  [N]ew  Files  is  selected, the following prompt
  12226.     appears:
  12227.  
  12228.        Which area (A-Z, + for all, ? for list, blank to quit) =>
  12229.  
  12230.     Once the user enters this prompt, another prompt appears which will look
  12231.     similar to the following:
  12232.  
  12233.        Enter date MM/DD/YYYY (default = 01/08/1990) =>
  12234.  
  12235.     Note that if the user has chosen [E]uropean date formats, the MM/DD/YYYY
  12236.     would  appear  as  DD.MM.YYYY  to  the  user.   This applies to all date
  12237.     prompts on the system.  If the user supplies a date in response to  this
  12238.     prompt, that date is checked and will be used instead, otherwise, if the
  12239.     user simply presses ENTER, the default date displayed within parenthesis
  12240.     will be  used instead.   The  listing which  will appear after answering
  12241.     this prompt will have the same  format as that used by the  [L]ist Files
  12242.     menu selection.
  12243.  
  12244.                        FILEMENU_SRCH: (menu selection T)
  12245.  
  12246.  
  12247.  
  12248.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12249.  
  12250.  
  12251.  
  12252.     Using Magnum BBS as a USER                                    Page  7-25
  12253.     The FILES MENU
  12254.  
  12255.  
  12256.     This menu selection allows the user to perform a text search of files on
  12257.     the board.  The text search searches both the filenames and descriptions
  12258.     in  it's  search.    When  this  menu selection is chosen, the following
  12259.     prompt appears:
  12260.  
  12261.        Which area to search (A-Z, + for all, ? for list, blank to quit) =>
  12262.  
  12263.     Once the user answers  this prompt with one  of A-Z or +,  the following
  12264.     prompt will appear:
  12265.  
  12266.        Text to search for (blank quits) =>
  12267.  
  12268.     Assuming the user  supplied a non-blank  answer to the  prompt, the next
  12269.     prompt will appear:
  12270.  
  12271.        Files newer than (MM/DD/YYYY) (default=01/01/1980) =>
  12272.  
  12273.     The user can either accept the default date by pressing ENTER, or supply
  12274.     a  different  date.    Once  this  prompt has been answered, Magnum will
  12275.     search the files database and  display (in [L]ist Files format),  a list
  12276.     of all files (if any) it  finds matching the text supplied by  the user.
  12277.     Both file  description and  filename fields  are searched  for a  match.
  12278.     Note   that   the   search    is   case   independent,   meaning    that
  12279.     uppercase/lowercase  is  not  an  issue  (ie:    Graphics, graphics, and
  12280.     GRAPHICS are identical as far as  Magnum is concerened).  Note that  any
  12281.     matches in  a filename  will result  in the  'matching' portion  of that
  12282.     filename  being  displayed  in  lowercase.    Any  matches  in  a   file
  12283.     description will be bracketed (within <  and > characters).  At the  end
  12284.     of  the  list  of  files  matching  the search criteria (if any), Magnum
  12285.     displays the "Press ENTER to continue ..." prompt.
  12286.  
  12287.     If the & or  | character appear within  a search string, it  has special
  12288.     meaning, and only the (brief)  file description (not the filename)  will
  12289.     be searched for a match:
  12290.  
  12291.     - If the & character is part of the search string, it separates      AND
  12292.       text to the left and right of this character as two separate
  12293.       search strings.  If BOTH search strings are matched in the
  12294.       brief file description, a match is made.
  12295.     - If the | character is part of the search string, it separates       OR
  12296.       text to the left and right of this character as two separate
  12297.       search strings.  If EITHER search string is matched in the
  12298.       brief file description, a match is made.
  12299.       Examples:  - CAT&MOUSE
  12300.                    Will match any files who's brief (1-line) description
  12301.                    contains BOTH the words CAT and MOUSE.
  12302.                  - CAT|MOUSE
  12303.                    Will match any files who's brief (1-line) description
  12304.                    contains EITHER the word CAT or MOUSE.
  12305.                  - CAT
  12306.                    Will match any files who's filename or brief (1-line)
  12307.                    description contains the word CAT.
  12308.       NOTES: - Only 1 & or 1 | character should be used within any search
  12309.  
  12310.  
  12311.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12312.  
  12313.  
  12314.  
  12315.     Page  7-26                                    Using Magnum BBS as a USER
  12316.                                                               The FILES MENU
  12317.  
  12318.  
  12319.                criteria (although this is not checked).
  12320.                If any blank spaces appear to the left or right of a & or |
  12321.                character, they are considered to be a part of the search
  12322.                string!  Do not use spaces before and/or after the & or |
  12323.                character unless you intend these spaces to be part of the
  12324.                search string!
  12325.                A handy use would be searching for the word ZIP but not as
  12326.                part of the filename!  Whenever the & or | characters are
  12327.                used, the filename is not checked, only the description is,
  12328.                therefore to search for the word ZIP, supplying ZIP| would
  12329.                supply (note the absence of anything on the right of |).
  12330.              - Refer to FILESRCH.BBS in chapter 2 (DISPLAY DIR section).
  12331.  
  12332.                        FILEMENU_STATS: (menu selection S)
  12333.  
  12334.     This  menu  selection  presents  the  user  with  statistics  on   their
  12335.     upload/downloads performed both for  the period and since  they've first
  12336.     called the system.  The list might look somewhat like the following:
  12337.  
  12338.           Your File Statistics:
  12339.  
  12340.         Your adjusted CPS (characters/second) transfer rate is: 256
  12341.         Your upload areas: ACEFHIJKL
  12342.         Your download areas: ACEFHIJKLZ
  12343.         FREE download areas (not affecting UL/DL ratio): CFJ
  12344.         Your list areas: ACEFHIJKLZ
  12345.         Totals:
  12346.            You've uploaded about 30 Kbytes in 2 files
  12347.            You've downloaded about 102 Kbytes in 6 files
  12348.            You've downloaded 2 files from FREE download areas
  12349.         Your totals for the week:
  12350.            You've downloaded about 0 Kbytes in 0 files
  12351.            Maximum allowed: 70000 Kbytes or 700 files
  12352.  
  12353.     Note that "Your totals for the week:"  is displayed to those who have  a
  12354.     period type of "Weekly".  "week" would display as "day" to daily  users,
  12355.     "month" to monthly users, and "year" to yearly users.
  12356.  
  12357.                       FILEMENU_GOODBYE: (menu selection G)
  12358.  
  12359.     This menu selection is identical  to the Goodbye selection in  any other
  12360.     menu (main menu, message menu, etc).   It firsts prompts the user  for a
  12361.     confirmation of their intentions to  log off, then prompts the  user for
  12362.     whether  they  wish   to  leave  a   Comment  to  the   sysop  (see  the
  12363.     VERIFY_GOODBYE option in the STARTUP file).
  12364.  
  12365.                        FILEMENU_HELP: (menu selection ?)
  12366.  
  12367.     This  menu  selection  will  display  the  file FILEHELP.BBS in the HELP
  12368.     directory if it exists, otherwise it will display a "Help not available"
  12369.     message.
  12370.  
  12371.                         FILEMENU_EXT: (menu selection A)
  12372.  
  12373.  
  12374.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12375.  
  12376.  
  12377.  
  12378.     Using Magnum BBS as a USER                                    Page  7-27
  12379.     The FILES MENU
  12380.  
  12381.  
  12382.  
  12383.     This menu selection (EXT stands  for EXTernal programs) allows the  user
  12384.     to Access a compressed (ARC or ZIP) file.  The user can view the list of
  12385.     members within a compressed file, read any readable members, or download
  12386.     any of the members within the  file.  This selection does not  require a
  12387.     file extension (ie:  .ARC, .ZIP,  etc) - it will find the  file matching
  12388.     the first acceptable extension.  By 'acceptable extension', we mean .ARC
  12389.     and .ZIP (built in).  You can add support for additional compressed file
  12390.     formats  (which  Magnum  will  recognize  and  process)  by  creating or
  12391.     updating  the  file  COMPRESS.LST  in  your  SESSION  DIRectory.
  12392.  
  12393.     -> If you wish to provide Magnum with compression formats in addition to
  12394.     -> .ARC  and  .ZIP  compression  formats,  refer  to  the description of
  12395.     -> COMPRESS.LST  in  the  chapter  entitled  "Back  to  Display  Files &
  12396.     -> Subdirectories", in the "SESSION Directory" section of that chapter.
  12397.  
  12398.                        FILEMENU_READ: (menu selection R)
  12399.  
  12400.     This  menu  selection  allows  the  user  to  read a non-binary file.  A
  12401.     non-binary file is a file containing only readable text (ie:  files with
  12402.     extensions of .EXE, .COM, .SYS,  .DLL, .ZIP, .ARC, etc are  binary files
  12403.     and not readable).  If a file is read in this fashion, rest assured that
  12404.     any imbedded MILC commands  (either intentional or non-intentional)  are
  12405.     ignored (not processed).
  12406.  
  12407.                       FILEMENU_CHANGE: (menu selection C)
  12408.  
  12409.     This menu  selection allows  the user  to change  a file  they uploaded.
  12410.     First, Magnum will prompt the user for the filename:
  12411.  
  12412.        Name of file to change? (blank quits) =>
  12413.  
  12414.     If the user supplies a filename they didn't upload, Magnum will disallow
  12415.     any changes.  Otherwise, a display similar to the following would show:
  12416.  
  12417.        File was found in area "E"
  12418.  
  12419.         Filename: "MAGCOM.ZIP" - Area: "E" - Public
  12420.                Expiration Date: None
  12421.           Detailed Description: Does not exist
  12422.        1-line Description:
  12423.        MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  12424.  
  12425.        0) Quit
  12426.        1) Delete
  12427.        2) Change Area (E)
  12428.        3) Make Private (password protect)
  12429.        4) Change FileName (MAGCOM.ZIP)
  12430.        5) Change Expiration Date ()
  12431.        6) Change Brief (1-line) description
  12432.        7) Add Detailed Description
  12433.  
  12434.        Choice (0-7) =>
  12435.  
  12436.  
  12437.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12438.  
  12439.  
  12440.  
  12441.     Page  7-28                                    Using Magnum BBS as a USER
  12442.                                                               The FILES MENU
  12443.  
  12444.  
  12445.  
  12446.     The above submenu is self-explanatory. The user can change 7 different
  12447.     things for any file they've uploaded.
  12448.  
  12449.                      FILEMENU_MAKELIST: (menu selection M)
  12450.  
  12451.     This menu selection  is identical to  the [N]ew Files  selection, except
  12452.     that it's output is  compressed into a .ZIP  or .ARC file (depending  on
  12453.     the  user's  Environment  default  for  System  Compression  Type).  The
  12454.     resultant .ZIP or .ARC file is password protected with the user's  logon
  12455.     password,  and  placed  in  the  RJE  file  area  for  download.   It is
  12456.     automatically marked with an  expiration date of the  next day.  If  the
  12457.     user  downloads  the  file  successfully  before  midnight,  the file is
  12458.     deleted immediately.  This menu selection creates an up-to-date list  of
  12459.     all  files  available  for  download  on  the  BBS  (which  the  user is
  12460.     authorized to download).  Note that the created filename has the  format
  12461.     Uxxxxx@y.ZIP (or  .ARC) where  xxxxx is  the user's  ID number  (up to 5
  12462.     digits), and y is a hex number  ranging from 0 to F indicating how  many
  12463.     of these RJE  files s/he created  today.  If  y is 0  this is the  first
  12464.     file, if y is 5 this is the 6th  file.  If y is F this is the  16th file
  12465.     and Magnum will disallow  creation of any more  RJE files for this  user
  12466.     until the next day.
  12467.  
  12468.     Note that downloadable file listings do not contain file numbers (#nnnn)
  12469.     because these  numbers are  subject to  change when  the sysop packs the
  12470.     file database(s).  Also,  the extended (long) descriptions  are included
  12471.     in the  downloadable listings  IF this  feature is  enabled by  the user
  12472.     ([E]nvironment option #26).
  12473.  
  12474.                        FILEMENU_OPT1: (menu selection 1)
  12475.                        FILEMENU_OPT2: (menu selection 2)
  12476.  
  12477.     These menu selections  are normally turned  off by setting  the security
  12478.     level to that of  one higher than any  of your users unless  you plan on
  12479.     using them.  When selected, Magnum will display the file FILEOPT1.BBS or
  12480.     FILEOPT2.BBS from your DISPLAY DIRectory if it exists.  These files  are
  12481.     created by you in order to supply 'hooks' to external programs in  areas
  12482.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  12483.     these files.
  12484.  
  12485.                        FILEMENU_BASE: (menu selection F)
  12486.  
  12487.     This menu selection  is for those  who've purchased [and  installed] our
  12488.     'Extended MessageBase'  module.   If you're  not using  this module, you
  12489.     should raise the security  level of this menu  option such that it  does
  12490.     not appear on any user's screen.
  12491.  
  12492.                        FILEMENU_UTILS: (menu selection E)
  12493.  
  12494.     This menu selection is identical to choosing the [U]tils selection  when
  12495.     at the "- More -" during file listings.  This selection allows the  user
  12496.     to mark files,  unmark files, access  compressed files, obtain  detailed
  12497.     information on files, modify their list of marked files, etc.
  12498.  
  12499.  
  12500.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12501.  
  12502.  
  12503.  
  12504.     Using Magnum BBS as a USER                                    Page  7-29
  12505.     The FILES MENU
  12506.  
  12507.  
  12508.  
  12509.     NOTE: If you're the Sysop, once you have a FileName entered at this
  12510.           prompt, you may press <Ctrl-E> to get to the same functions you'd
  12511.           have in the Sysop Menu for this particular file!
  12512.  
  12513.                       FILEMENU_BASEUP: (menu selection +)
  12514.                       FILEMENU_BASEDN: (menu selection -)
  12515.  
  12516.     These menu selections are to be used with the optional Extended FileBase
  12517.     module.  These commands are a 'shortcut' for a user to move to the  next
  12518.     available FileBase or next preceding FileBase s/he has access to.
  12519.  
  12520.  
  12521.  
  12522.  
  12523.  
  12524.  
  12525.  
  12526.  
  12527.  
  12528.  
  12529.  
  12530.  
  12531.  
  12532.  
  12533.  
  12534.  
  12535.  
  12536.  
  12537.  
  12538.  
  12539.  
  12540.  
  12541.  
  12542.  
  12543.  
  12544.  
  12545.  
  12546.  
  12547.  
  12548.  
  12549.  
  12550.  
  12551.  
  12552.  
  12553.  
  12554.  
  12555.  
  12556.  
  12557.  
  12558.  
  12559.  
  12560.  
  12561.  
  12562.  
  12563.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12564.  
  12565.  
  12566.  
  12567.     Page  7-30                                    Using Magnum BBS as a USER
  12568.                                                               The SYSOP MENU
  12569.  
  12570.  
  12571.  
  12572.     The SYSOP MENU currently has 11 menu selections available:
  12573.  
  12574.                         SYSMENU_QUIT: (menu selection Q)
  12575.  
  12576.     Like any other QUIT MENU command, selecting this menu option will return
  12577.     the user to the main menu.
  12578.  
  12579.                         SYSMENU_CMD: (menu selection O)
  12580.  
  12581.     This menu selection will  invoke the operating system's  CMD.EXE (OS/2's
  12582.     command interpreter).  This is available whether the user is on  locally
  12583.     or remotely.   To exit the  command interpreter and  return to the  BBS,
  12584.     enter the command EXIT followed by your ENTER key.
  12585.  
  12586.                        SYSMENU_PRINT: (menu selection P)
  12587.  
  12588.     This menu selection gives you  the option of printing the  user database
  12589.     (one page  per user)  or address  lables.   Choosing this menu selection
  12590.     results in Magnum  prompting you for  which filename or  device to print
  12591.     to.  In  most systems, PRN  is the device  name of the  printer.  If you
  12592.     specified a filename instead, output  will be printed to that  filename.
  12593.     The next  prompt you  will see  asks which  security level  you wish  to
  12594.     print.  The prompt after that  asks if you want [R]ecord information  or
  12595.     [A]ddress Labels to print.  If you choose [A]ddress Labels, you'll get a
  12596.     "[P]rint, [A]lignment" response.   By choosing [A]lignment, Magnum  will
  12597.     print 2 dummy labels on your  printer, giving you a chance to  align the
  12598.     labels  in  your  printer.    Once  you're satisfied with the alignment,
  12599.     choose not  to reprint  the test  - Magnum  will then  print the address
  12600.     labels.  Note that you can press <Ctrl-X> during printing to abort.   If
  12601.     you're printing address labels, it's recommended to set your printer  in
  12602.     condensed mode.  Magnum assumes 6 lines between labels and assumes  each
  12603.     label can hold 5 lines of  address information (the 6th line is  a blank
  12604.     line separating labels).
  12605.  
  12606.     NOTE: You may also print out "Mail" accounts.
  12607.  
  12608.                         SYSMENU_MSG: (menu selection M)
  12609.  
  12610.     This menu selection allows the  user (sysop) to fiddle with  the message
  12611.     database.  When you select this option, the record for the first message
  12612.     on the system  is displayed along  with the prompt  for this area.   The
  12613.     display might look similar to the following:
  12614.  
  12615.        MSGBASE: 0 RECNUM: 0 (actual), 0 (recorded)
  12616.        DELETED: N
  12617.        CONF: H
  12618.        PRIVATE: N
  12619.        RECEIVED: N,  MSGMILC: '@',  ECHO: N
  12620.        FROM: /0 (CHUCK B GILMORE)
  12621.        TO: /55
  12622.        NUM: /0
  12623.        #READ: 68
  12624.  
  12625.  
  12626.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12627.  
  12628.  
  12629.  
  12630.     Using Magnum BBS as a USER                                    Page  7-31
  12631.     The SYSOP MENU
  12632.  
  12633.  
  12634.        SUBJ: Welcome!
  12635.        DATE: 09/01/1994
  12636.        TIME: 06:00                FROM_PSERNUM: 1234567890
  12637.        EXPDATE: (nul)              TO_PSERNUM: 1234567890
  12638.        CC: N                       SENT: Y
  12639.        FWD: N  FROM_USERNAME: "CHUCK B GILMORE"
  12640.        RECEIPT: N  TO_USERNAME: "JOHN S. DOE"
  12641.        REPLIES: N
  12642.        ISREPLY: N
  12643.        RECVD_DATE: (nul)
  12644.        RECVD_TIME: (nul)
  12645.        FILENAME: H9010916.835
  12646.  
  12647.        FIELDNAME, Next, Quit, Prev, Match, Ref, Erased, Hardcopy,
  12648.        #nnnn, Base, From, To, Userid, Date, Subj, View =>
  12649.  
  12650.     The fields listed are all  changeable except for the RECNUM  field which
  12651.     is merely an informative field for your information only.  To change any
  12652.     of the fields,  enter the full  fieldname.  For  example, to change  the
  12653.     SUBJ field, type SUBJ followed by  your ENTER key.  You'll get  a prompt
  12654.     asking for the new SUBJ which you might respond with "Welcome to  Magnum
  12655.     BBS!".  You can change any of the fields simply by entering the name  of
  12656.     the field and pressing ENTER -  Magnum will then prompt you for  the new
  12657.     value of the field.  All fields which hold one of two values (Y or N for
  12658.     Yes or No) are called boolean fields (boolean refers to fields which can
  12659.     hold one of  two things -  Yes or No,  or programmers are  more familiar
  12660.     with TRUE or  FALSE).  Except  for the CONF:   field which  can hold any
  12661.     alphabetic value, boolean fields can be interpreted (via example) as:
  12662.  
  12663.        DELETED: N
  12664.  
  12665.     simply ask  yourself a  question with  the fieldname  - Is  this message
  12666.     DELETED?  The value shows N, therefore, NO, the message is NOT  deleted.
  12667.     Let's try it with another boolean field:
  12668.  
  12669.        ISREPLY: N
  12670.  
  12671.     simply ask  yourself Is  this message  a reply  (to a previous message)?
  12672.     The value shows N, therefore, NO, the message is NOT a reply.  Since the
  12673.     values for the fields are self-explanatory once you understand what  the
  12674.     fieldnames refer to, let's describe what each fieldname refers to:
  12675.  
  12676.        MSGBASE: Will always be 0 unless you're using the optional 'Extended
  12677.                 MessageBase' module, otherwise can be 0 to 255.
  12678.  
  12679.        RECNUM: Not Changeable - for your information only
  12680.  
  12681.        DELETED: Boolean field (Y=Deleted, N=Not Deleted)
  12682.  
  12683.        CONF: Conference area of message (one of A to Z)
  12684.  
  12685.        PRIVATE: Boolean field (Y=Private, N=Not Private)
  12686.  
  12687.  
  12688.  
  12689.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12690.  
  12691.  
  12692.  
  12693.     Page  7-32                                    Using Magnum BBS as a USER
  12694.                                                               The SYSOP MENU
  12695.  
  12696.  
  12697.        RECEIVED: Boolean field (Y=Received by addressee, N=not received)
  12698.  
  12699.        MSGMILC: Shows the MILC command character used for this message. This
  12700.                 does not necessarily mean that any MILC commands were used.
  12701.  
  12702.        ECHO: Shows whether this message is echoable (Y) or not (N) to other
  12703.              systems. Echoable messages generally have different 'from' and
  12704.              'to' serial numbers.
  12705.  
  12706.        FROM: Who composed the message (ie: /0 (CHUCK B GILMORE))
  12707.  
  12708.        TO: Who the message is to (ie: /IDNUM (Firstname M, Lastname) or ALL)
  12709.  
  12710.        NUM: IDNUM of original addresse (if this is a CC or FWD message)
  12711.  
  12712.        #READ: Number of times message was read.
  12713.  
  12714.        SUBJ: Subject of message.
  12715.  
  12716.        DATE: Date of message
  12717.  
  12718.        TIME: Time of messaage
  12719.  
  12720.        FROM_PSERNUM: The serial# of the originating BBS (usually yours).
  12721.  
  12722.        TO_PSERNUM: The serial# of the target BBS (usually yours).
  12723.  
  12724.        SENT: If the 'from' and 'to' serial numbers are identical, this field
  12725.              will always be Y (yes). However, if the 'from' and 'to' serial
  12726.              numbers are different, it will be Y (yes) only if the message
  12727.              has been sent via AMMO (refer to chapter on Magnum-to-Magnum
  12728.              Remote Mail), otherwise N (no).
  12729.  
  12730.        EXPDATE: Expiration date of msg (MM/DD/YYYY or DD.MM.YYYY) or (nul)
  12731.  
  12732.        CC: Boolean field (Y=this is a CC (carbon copy), N=this is not a CC)
  12733.  
  12734.        FWD: Boolean field (Y=this is a forwarded message, N=not forwarded)
  12735.  
  12736.        RECEIPT: Boolean field (Y=receipt requested, N=no receipt requested)
  12737.  
  12738.        REPLIES: Boolean field (Y=replies exist, N=replies do not exist)
  12739.  
  12740.        ISREPLY: Boolean field (Y=this is a reply, N=this is not a reply)
  12741.  
  12742.        RECVD_DATE: Date msg was received (MM/DD/YYYY or DD.MM.YYYY) or (nul)
  12743.  
  12744.        RECVD_TIME: Time message was received
  12745.  
  12746.        FILENAME: Filename of file holding actual text of message (same as
  12747.                  REF# but with the . to delimit the filename extension).
  12748.                  Note that the first character of the filename determines
  12749.                  which subdirectory (A-Z) of the MESSAGE subdirectory
  12750.  
  12751.  
  12752.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12753.  
  12754.  
  12755.  
  12756.     Using Magnum BBS as a USER                                    Page  7-33
  12757.     The SYSOP MENU
  12758.  
  12759.  
  12760.                  houses the file.
  12761.  
  12762.     This explains the FIELD entries. The actual prompt:
  12763.  
  12764.        FIELDNAME, Next, Quit, Prev, Match, Ref, Erased, Hardcopy,
  12765.        #nnnn, Base, From, To, Userid, Date, Subj, View =>
  12766.  
  12767.     expects you to enter either a FIELDNAME, or one of the 6 command letters
  12768.     (N,Q,P,M,R,E,F,T,U,D,S,V).  The command letters are defined as follows:
  12769.  
  12770.        N = Next. Show next message entry (wraps to 0 if at end of database).
  12771.        Q = Quit. Quits message database section and returns to Sysop menu.
  12772.        P = Prev. Show previous message entry (wraps to last entry if at
  12773.            beginning of database).
  12774.        M = Match. Prompts for a Conference letter to match. All Next and
  12775.            Prev commands will only display the records who's conference area
  12776.            matches what you've supplied here.
  12777.        R = Reference#. You can supply a reference# here and Magnum will
  12778.            bring up the record for that message.
  12779.        E = Erased. Magnum will only display records for those messages which
  12780.            have been erased (deleted). If you haven't done a "[S]tatus of
  12781.            Databases" command, then erased messages should still be Viewable
  12782.            (with the View command), otherwise the message really is deleted
  12783.            (refer to the DELETED field).
  12784.        H = Hardcopy. Prints message on your printer, unprocessed.
  12785.        #nnnn = Record number to 'jump' to (start with the # character).
  12786.        B = Base. If using the optional 'Extended MsgBase', you can change
  12787.            the MsgBase here.
  12788.        F = Only display records who's FROM field matches the FROM ID you'll
  12789.            supply in answer to this prompt.
  12790.        T = Only display records who's TO field matches the TO ID you'll
  12791.            supply in answer to this prompt.
  12792.        U = Only displays recrods who's FROM or TO field matches the user ID
  12793.            you'll supply in answer to this prompt.
  12794.        D = Date. Only displays records which are greater than or equal to
  12795.            the date answer you'll supply in answer to this prompt.
  12796.        S = Subject. Only displays records which match the Subject field
  12797.            you'll supply.
  12798.        V = View the message text. This is identical to reading the message
  12799.            when in the "Read Messages Submenu". The difference is that when
  12800.            you choose the View option from here, Magnum will not update the
  12801.            message header (ie: won't count it as being read or received, and
  12802.            no receipt will be generated if the message is to you with a
  12803.            receipt requested).
  12804.  
  12805.     As you can  see, the Message  Database area of  the Sysop menu  can be a
  12806.     very powerful utility.   You can  change most any  field of any  message
  12807.     header.  NOTE THAT ALL CHANGES  MADE TO "FROM" AND "TO" MUST  START WITH
  12808.     THE '/' CHARACTER (note that a recipient of ALL is designated as /-1).
  12809.  
  12810.     Note that if you choose 'H' (hardcopy), you will be prompted for a  file
  12811.     or devicename  to print  the message  out to.   Printing  will print any
  12812.     imbedded MILC commands unprocessed.
  12813.  
  12814.  
  12815.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12816.  
  12817.  
  12818.  
  12819.     Page  7-34                                    Using Magnum BBS as a USER
  12820.                                                               The SYSOP MENU
  12821.  
  12822.  
  12823.  
  12824.                         SYSMENU_USER: (menu selection U)
  12825.  
  12826.     The USER DATABASE area of the Sysop Menu is another powerful sysop tool.
  12827.     When you enter this area of the Sysop menu, the record for ID /0 (Sysop)
  12828.     will automatically be displayed.  As with the Message database area, ANY
  12829.     fieldname (with the exception of the USER ID) is changeable.  An example
  12830.     user record might look something like the following:
  12831.  
  12832.        LASTNAME=DOE, FIRSTNAME=JOHN, MIDDLENAME=C
  12833.        ID=/0, STREET1(c)=John Doe's BBS,  TYPE=U, REUSE=N,  IA="id0"
  12834.        STREET2=12345 Abbey Road
  12835.        CITY=Los Angeles, STATE=CA, ZIP=90067, COUNTRY=USA
  12836.        FIRSTCALL=10/05/1989, LASTCALL=01/12/1990, TIMELAST=18:24
  12837.        PASSWORD=NHOJ, DOB=07/01/1958 (age: 31), DATEFORMAT=U, RJEJOBS=3
  12838.        PHONE1=213-555-1234, PHONE2=213-555-4321
  12839.        CPUTYPE=IBM PS/2 model 80, CONFERENCES=ACEFGH
  12840.        MEMODATE1=, MEMODATE2=, PRIVMSG=Y, DELMSG=Y, SUB_FILEDEL=N
  12841.        SYSOP_COMMENT=Master SYSOP
  12842.        XFERTYPE=N, PERIODTYPE=W, EXPERT=N, LOCKED_OUT=N, COLOR=Y, DISPLAY_MO
  12843.        ERASE_MORE=Y, HOTKEYS=Y, LINES_PAGE=23, LEVEL=1000, UPLOADS=102
  12844.        DOWNLOADS=36, CPS=2056, UDRATIO=0, TTL_CALLS=413, REMAINING=94
  12845.        REMAINING_PERIOD=659, K_UL=4568, K_DL=2171, PERIOD_DL=700
  12846.        PERIOD_K_DL=70000, DL_THIS_PERIOD=0, K_DL_THIS_PERIOD=0
  12847.        DAILY_TIME=120, DAILY_DL=100, DAILY_K_DL=10000, PRIVACY=OFF
  12848.        FILE_U_AREAS=ACEFHIJKLSZQ, FREE_DL_AREAS=CFJ
  12849.        FILE_D_AREAS=ACEFHIJKLSZQ, FREE_DOWNLOADS=1
  12850.        FILE_L_AREAS=ACEFHIJKLSZQ, FILEGRP=0, FILEBASE=0
  12851.        MSG_R_AREAS=ACHKLSWZ, MSGGRP=0, MSGBASE=0, RMAIL=N
  12852.        MSG_W_AREAS=ACHKLSWZ, OMAIL=N
  12853.        MSG_L_AREAS=ACHKLSWZ
  12854.        MILC_CMDS=ABCDEFGHIJKLMNOPQRSTUVWXYZ, COMPRESS=Z, PRIVM=108, PUBLM=34
  12855.        I= OS/2 PM COMMUNICATIONS BBS
  12856.        COMMAND (FIELDNAME, Quit, Match, Nxt, Prev, Srch, Del, /ID) =>
  12857.  
  12858.     The last  line of  the display  (in hi-intensity  cyan on color systems)
  12859.     prompts you for either a FIELDNAME or  the first letter of one of the  6
  12860.     commands  (Quit,  Match,  Nxt,  Prev,  Srch,  Del),  or  the  ID  number
  12861.     (beginning  with  the  forward  slash  (/)  character) of the user who's
  12862.     record you'd like to bring up.  If you are seeing the display in  color,
  12863.     FIELDNAMES appear in hi-intensity  green, while their changeable  values
  12864.     appear in hi-intensity white.   Note that any field (with  the exception
  12865.     of ID) can be changed.  The ID number is identical to the record  number
  12866.     (position  in  database  file),  which  is  why the user database is not
  12867.     packable (unlike the file and message databases which are packable).
  12868.  
  12869.     We've already explained what supplying a forward slash and user ID does,
  12870.     so lets  explain the  other 6  commands.   Only the  first letter of the
  12871.     other 6 commands  need be supplied  (ENTER key is  required after making
  12872.     any selection here).  The Quit command quits the User Database area  and
  12873.     returns you back to the Sysop Menu.  The Match command prompts you for a
  12874.     security  level  (or  match  on  MAIL  accounts) - after you answer that
  12875.     prompt with a  security level, Magnum  will display only  those users in
  12876.  
  12877.  
  12878.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12879.  
  12880.  
  12881.  
  12882.     Using Magnum BBS as a USER                                    Page  7-35
  12883.     The SYSOP MENU
  12884.  
  12885.  
  12886.     the database who's  security level matches  the one you  just supplied -
  12887.     this will be true for the Nxt  and Prev commands as well - use  the Quit
  12888.     command to stop the  Match process.  The  Nxt command will bring  up the
  12889.     next record  in the  user database  - if  you're already  at the highest
  12890.     record number, it will wrap to record 0. The Prev command will bring  up
  12891.     the previous record number - if you're currently at record number 0  (ID
  12892.     of /0), it will wrap to  the last record (highest record number)  in the
  12893.     database.  The Srch command will invoke the User Search command which is
  12894.     identical to the  MAINMENU_USERS (main menu  selection U) command.   The
  12895.     Del command will prompt you as to whether you wish to delete this user -
  12896.     if you delete the user, you  can undelete them later by issuing  the /ID
  12897.     command and answering Yes to  the "undelete" prompt (unless the  user id
  12898.     has been re-assigned to a new user).
  12899.  
  12900.     The FIELDNAME's are all self explanatory.  Simply enter the FIELDNAME of
  12901.     a field you wish to change.  A prompt for the new fieldname will  appear
  12902.     asking you for the new value to  assign to the field.  Note that  if you
  12903.     wish to change the MIDDLENAME field of a user's record to blank  (none),
  12904.     you'll need to  change the MIDDLENAME  to a value  of X (the  letter X).
  12905.     Note that if you are changing  a user's record and that user  happens to
  12906.     be online at the same time, all fields will accept and apply the  change
  12907.     except for the  LEVEL field.   To change the  security level for  a user
  12908.     who's already online, you'll need to change it at the MBBS sysop console
  12909.     with the "x  LEVEL yyyy" command  (where x is  the node they're  on, and
  12910.     yyyy is the new security level).
  12911.  
  12912.     Note that MEMODATE1,  MEMODATE2 and SYSOP_COMMENT  are for your  (Sysop)
  12913.     private use - you  may do with these  fields as you wish.   The memodate
  12914.     field is typically used when  you're running your BBS as  a subscription
  12915.     BBS system.  You would enter the user's subscription expiration date  in
  12916.     this field  and use  MBBSEXEC.EXE (see  the chapter  on MBBSEXEC)  sysop
  12917.     utility to lower  this user's security  and access levels  on the user's
  12918.     expiration date.
  12919.  
  12920.     The only other field that needs some explaining is the MILC_CMDS  field.
  12921.     Refer to the chapter on MILC commands.  This field contains the  letters
  12922.     (A-Z)  of  allowable  MILC  commands  the  user can use in message text.
  12923.     Typically this value is "AO" (@A commands are for color, @O commands are
  12924.     for  other,  miscellaneous  information  display).    In  this case, the
  12925.     Sysop's record is being displayed, and the Sysop should be able to issue
  12926.     ANY MILC  command within  any message  text s/he  likes - therefore, all
  12927.     letters of the alphabet are defined (even though there aren't that  many
  12928.     MILC categories  - this  way, you  won't have  to change  it for  future
  12929.     releases  of  Magnum  which  may  contain  additional categories of MILC
  12930.     commands in the future).  If a  user enters a MILC command in a  message
  12931.     text which isn't allowed (not  in the MILC_CMDS of the  user's profile),
  12932.     Magnum  will  simply  display  the  MILC  command when someone reads the
  12933.     message as though it were normal text but it won't process it.
  12934.  
  12935.     Other fields which may need additional explanation:
  12936.  
  12937.     The STREET1 field will be followed  by (c) or (h) to reveal  whether the
  12938.     STREET1 field is referring to Company Name or Handle (alias name).
  12939.  
  12940.  
  12941.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  12942.  
  12943.  
  12944.  
  12945.     Page  7-36                                    Using Magnum BBS as a USER
  12946.                                                               The SYSOP MENU
  12947.  
  12948.  
  12949.  
  12950.     The REUSE  and TYPE  fields appear  near the  top of  the screen  (after
  12951.     STREET1).  The IA  field is for "Internet  Adress", and the FILEGRP  and
  12952.     MSGGRP  appear  near  the  bottom  (after FILE_L_AREAS and MSG_R_AREAS).
  12953.     Note that FILEGRP,  MSGGRP, FILEBASE and  MSGBASE apply to  those sysops
  12954.     using the extended FileBase and/or Extended MsgBase modules.  Note  that
  12955.     TYPE applies to those sysops using the Magnum Remote Mail option.   TYPE
  12956.     can be one of U (user)  or M (mail).  REUSE can  be one of Y (yes) or  N
  12957.     (no) - If N  (no), this record is  NOT reusable in the  event you delete
  12958.     this user.   The  RMAIL field  indicates whether  the user  can enter  a
  12959.     message to a user on a remote Magnum system.  The default is NOT to have
  12960.     this capability, however you may  change this default for any/all  users
  12961.     either individually in the User Database  area of the Sysop Menu, or  in
  12962.     bulk  with  a  .MEX  program.    For  those running the extended file or
  12963.     msgbase modules, refer to the chpater on Extended Filebase and  Extended
  12964.     MsgBase modules.
  12965.  
  12966.     The OMAIL  field (Outside  Mail) indicates  whether the  user has access
  12967.     to/from the "outside mail" account refer to the chapter "Outside Mail".
  12968.  
  12969.                         SYSMENU_FILE: (menu selection F)
  12970.  
  12971.     This menu selection  will enter the  Files database.   First, you'll see
  12972.     the following prompt:
  12973.  
  12974.        B)ase, F)ile Utils, A)dd Files (B,F,A) (blank quits) =>
  12975.  
  12976.     By simply pressing ENTER (without entering a response), you'll quit this
  12977.     section and go back to the Sysop Menu.  By choosing B, you'll be allowed
  12978.     to change the FileBase (applicable only if using the optional  'Extended
  12979.     FileBase' module).
  12980.  
  12981.     By Choosing F, the following prompt will appear:
  12982.  
  12983.        Search by A)rea or F)ilename (A,F, blank quits) =>
  12984.  
  12985.     By choosing A, you'll  be prompted for a  file area (A-Z) in which to
  12986.     add a file from. The file must already exist in that file area!
  12987.  
  12988.     By choosing F, the following prompt will display:
  12989.  
  12990.        Search by A)rea, F)ilename or U)ser (A,F,U - blank quits) =>
  12991.  
  12992.     If you choose A)rea, then the records matching that file area will
  12993.     display in sequential order, starting with the first one it finds.
  12994.     You'll be given a chance to modify any of the fields in any of the
  12995.     records while it's being displayed, or you can go on to the next record
  12996.     matching the file area, or quit.
  12997.  
  12998.     If you choose F)ilename, the record of the filename will appear.
  12999.  
  13000.     If you choose U)ser, then all files uploaded by that user (filenames
  13001.     only), will be displayed.
  13002.  
  13003.  
  13004.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13005.  
  13006.  
  13007.  
  13008.     Using Magnum BBS as a USER                                    Page  7-37
  13009.     The SYSOP MENU
  13010.  
  13011.  
  13012.  
  13013.     When a file record is displayed, it might look like the following:
  13014.  
  13015.        FileName: "MAGCOM.ZIP" - Area: "E" - Public
  13016.               Expiration Date: None
  13017.          Detailed Description: Does not exist
  13018.        1-line Description:
  13019.        MAGCOM communications pgm for OS/2 from Gilmore Systems. X,Y,Zmodem
  13020.  
  13021.        0) Quit
  13022.        1) Delete
  13023.        2) Change Area (E)
  13024.        3) Make Private (password protect)
  13025.        4) Change FileName (MAGCOM.ZIP) [#204]
  13026.        5) Change Expiration Date ()
  13027.        6) Change Brief (1-line) description
  13028.        7) Add Detailed Description
  13029.        8) Upload method (G)
  13030.        9) File Date (01/01/1990)
  13031.        10) File Time (06:41)
  13032.        11) Last Accessed (01/08/1990)
  13033.        12) ID# of uploader (/0)
  13034.        13) Delete detailed description (NonApplicable)
  13035.        14) Size of file (80896)
  13036.        15) Number of downloads (67)
  13037.        16) FileBase (000)          17) View ZIP
  13038.  
  13039.        Choice (0-17) =>
  13040.  
  13041.     Note that choices  0-7 are identical  to the FILEMENU_CHANGE  (file menu
  13042.     option C) except that choices 8-17  have been added for the rest  of the
  13043.     record to be available  for changes by the  sysop.  All parameters  here
  13044.     are self explanatory.  When you quit (0) this selection, you will return
  13045.     to the previous prompt - if you're searching by area, you'll be prompted
  13046.     as to whether you wish to see the record of the next file in the area or
  13047.     if you'd like to quit.
  13048.  
  13049.     The other selection of the Files  Database section of the sysop menu  is
  13050.     the A)dd files selection.  Choosing this option first requires that  the
  13051.     file you are about to add has been placed in the directory matching  the
  13052.     file area you wish to add the file  to.  In other words, if file area  F
  13053.     is defined as "E:\MAGNUM\NEWFILES", then  the file you are about  to add
  13054.     to the database should already be placed in this directory.  By choosing
  13055.     the A)dd files selection, you will be prompted for the name of the  file
  13056.     you are about to add, followed by  a prompt for the area the file  is to
  13057.     be found in, and a description of the file.
  13058.  
  13059.                       SYSMENU_ACTIVITY: (menu selection A)
  13060.  
  13061.     This menu  selection is  actually two  different functions  in one.  The
  13062.     main purpose  for this  function is  to view  the activity  logs for the
  13063.     individual nodes.  The prompt  appearing when you select this  option is
  13064.     as follows (we're assuming 4-node version):
  13065.  
  13066.  
  13067.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13068.  
  13069.  
  13070.  
  13071.     Page  7-38                                    Using Magnum BBS as a USER
  13072.                                                               The SYSOP MENU
  13073.  
  13074.  
  13075.  
  13076.        Activity for which node (1-4) =>
  13077.  
  13078.     By supplying  a node  number, the  log for  that node  will be displayed
  13079.     (BACKWARDS) in reverse chronological order.
  13080.  
  13081.     If you  anser the  prompt with  a question  mark (?)  followed by a node
  13082.     number, for example:
  13083.  
  13084.        Activity for which node (1-4) => ?1
  13085.  
  13086.     you will be placed in "Remote Snoop" mode.  In other words, you will  be
  13087.     able to see everything the user on that node sees.  This is intended for
  13088.     sysops who  are logged  on remotely  and wish  to "snoop"  on someone as
  13089.     though they were sitting at the master console and typed "1 switch".  To
  13090.     end "remote snoop", simply press <Ctrl-X>.
  13091.  
  13092.     Important  notes  about  "remote  snoop":    Characters  are placed in a
  13093.     circular buffer of  2k bytes.  If you are logged on at a lower baud rate
  13094.     than  the  user  you  are  "snooping"  on,  you  may  experience loss of
  13095.     characters  in  this  mode.    Also,  if  the  user is performing a file
  13096.     transfer (upload  or download),  the usual  display of  "Bytes Sent"  or
  13097.     "Bytes Received" will not  be visible!  Do  not be alarmed at  this.  Do
  13098.     not try to use this "remote snoop" facility while logged on locally -  a
  13099.     decrease in priority is issued to the local node and you will lose  MANY
  13100.     characters of snoop display.
  13101.  
  13102.                        SYSMENU_REMOTE: (menu selection R)
  13103.  
  13104.     This menu selection will work only for sysops who've logged on  remotely
  13105.     (will not work if logged on locally via the console).  This area of  the
  13106.     BBS emulates the  MBBS Sysop console.   You can  issue ANY MBBS  command
  13107.     that you'd ordinarily have to be sitting at the Sysop console to  issue.
  13108.     You can make any node(s) active, inactive, schedule a node for shutdown,
  13109.     force a user  off, etc.   The only thing  you can't do  is issue the  "*
  13110.     logon" command (it will  be rejected).  When  you first enter this  menu
  13111.     selection, Magnum will send the "MAGNUM SYSOP CONSOLE Display Screen" to
  13112.     your remote  terminal, and  prompt you  for a  MBBS command.   After any
  13113.     command you enter,  it will be  processed and the  "MAGNUM SYSOP CONSOLE
  13114.     Display Screen"  will be  redisplayed on  your remote  terminal.  To end
  13115.     this "remote  sysop console"  mode, simply  ENTER a  null command  (just
  13116.     press ENTER without typing anything at the command prompt).
  13117.     NOTE: "TEST mode" is not possible via this option - it is available only
  13118.           at the sysop's console (keyboard) on the machine running Magnum.
  13119.  
  13120.                        SYSMENU_STATS: (menu selection S)
  13121.  
  13122.     This menu selection  displays the status  of the databases.   NOTE:   BY
  13123.     CHOOSING THIS  MENU SELECTION,  ALL EXPIRED  FILES AND  MESSAGES WILL BE
  13124.     PHYSICALLY DELETED, NOT JUST MARKED FOR DELETION!  ANY FILES OR MESSAGES
  13125.     MARKED FOR DELETION WILL BE PHYSICALLY DELETED!
  13126.  
  13127.     By choosing  this menu  selection, you'll  see a  display similar to the
  13128.  
  13129.  
  13130.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13131.  
  13132.  
  13133.  
  13134.     Using Magnum BBS as a USER                                    Page  7-39
  13135.     The SYSOP MENU
  13136.  
  13137.  
  13138.     following:
  13139.  
  13140.             MAGNUM OS/2 BBS - (C)Copyright 1989,1993 Gilmore Systems
  13141.  
  13142.                       # Records  =  Active +  Deleted
  13143.        USER DATABASE:   000647      000647    000000  (unpackable)
  13144.        FILE DATABASE:   000432      000414    000018  [FILEBASE: 000] <432>
  13145.         MSG DATABASE:   001407      001391    000016  [ MSGBASE: 000] <1407>
  13146.         RJE DATABASE:   001200      001200    000000
  13147.  
  13148.        [F]=Pack File Database, [M]=Pack Message Database, [R]=Pack RJE Datab
  13149.        [C]hange File/MsgBase, [Q]uit
  13150.  
  13151.        Choice (F,M,R,C,Q) =>
  13152.  
  13153.     Even though physical deletions are performed, an entry in the  databases
  13154.     (File and Message databases) still  exist for the deleted records.   You
  13155.     must perform a Pack  of the databases to  recreate the databases -  this
  13156.     will eliminate the deleted records and free up some space.
  13157.  
  13158.     For users of the Extended MsgBase and/or Extended FileBase modules:  The
  13159.     information within the square brackets  shows which base you're in,  and
  13160.     the information within the angled brackets shows how many of the records
  13161.     actually belong to that base (you can have more than one base within the
  13162.     same .DAT file).
  13163.  
  13164.     IMPORTANT: WHEN PACKING DATABASES, MAGNUM WILL CAUSE ALL SESSIONS (OTHER
  13165.                THAN YOURS) TO TERMINATE. ALL NODES (EXCEPT YOURS) WILL ALSO
  13166.                BECOME INACTIVE. THIS APPLIES TO *ALL* SESSIONS AND NODES
  13167.                REGARDLESS OF WHERE THEY'RE LOCATED ON YOUR LAN. MAGNUM WILL
  13168.                GIVE YOU THE COURTESY OF PROMPTING YOU AS TO WHETHER YOU WISH
  13169.                TO CONTINUE WITH THE 'PACKING' BEFORE IT DOES ANYTHING - THIS
  13170.                WILL ALLOW YOU TO CHANGE YOUR MIND.
  13171.  
  13172.                THERE MUST BE ENOUGH FREE DISK SPACE TO HOLD AN EXTRA COPY OF
  13173.                THE DATABASE(s) YOU ARE PACKING!
  13174.  
  13175.                IT IS A GOOD IDEA TO MAKE A BACKUP COPY OF THE DATABASES
  13176.                PRIOR TO PACKING THEM.
  13177.  
  13178.     While packing  message or  file databases,  the system  displays + and -
  13179.     characters on the screen.  A '+' character displays for every  processed
  13180.     record, a '-' character for every record it deletes.  At pack completion
  13181.     status is redisplayed, and the number of records in the database  should
  13182.     should match the number of active records (deleted records should be 0).
  13183.  
  13184.     It's necessary  to pack  the databases  periodically.   Depending on how
  13185.     active your BBS is, we found that once per week suits most busy boards.
  13186.  
  13187.     NOTE: From time to time the number of records reported in the USER
  13188.           database will not match the number of actual records in the user
  13189.           database as reported by the "[V]iew System Statistics" from the
  13190.           main menu. This is normal, and eventually the two will match. The
  13191.  
  13192.  
  13193.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13194.  
  13195.  
  13196.  
  13197.     Page  7-40                                    Using Magnum BBS as a USER
  13198.                                                               The SYSOP MENU
  13199.  
  13200.  
  13201.           number of records in this option is derived from the number of
  13202.           records in the USER.KEY file rather than in the USER.DAT file.
  13203.           The USER.KEY file will ocassionally contain more records than the
  13204.           USER.DAT file due to aborted NEW USER logons.  You may switch to
  13205.           your SES_DIR and run SPLITLEY.EXE to correct this if you wish.
  13206.  
  13207.                         SYSMENU_HELP: (menu selection ?)
  13208.  
  13209.     This menu  selection displays  the help  file SYSHELP.BBS  (in the  HELP
  13210.     directory) if  it exists,  otherwise a  "Help not  available" message is
  13211.     displayed.   As of  this writing,  a help  file is  not included for the
  13212.     Sysop  menu,  but  you  can  feel  free  to write your own should you be
  13213.     inclined to do so.
  13214.  
  13215.                       SYSMENU_GOODBYE: (menu selection G)
  13216.  
  13217.     This menu selection  is identical to  the GOODBYE function  on any other
  13218.     menu.   It prompts  the user  as to  whether they're  sure they  want to
  13219.     disconnect, and  whether they'd  like to  leave a  comment to  the Sysop
  13220.     prior to  disconnecting (see  the VERIFY_GOODBYE  option in  the STARTUP
  13221.     file).
  13222.  
  13223.                         SYSMENU_OPT1: (menu selection 1)
  13224.                         SYSMENU_OPT2: (menu selection 2)
  13225.  
  13226.     These menu selections  are normally turned  off by setting  the security
  13227.     level to that of  one higher than any  of your users unless  you plan on
  13228.     using them.  When selected, Magnum will display the file SYSOPT1.BBS  or
  13229.     SYSOPT2.BBS from your DISPLAY DIRectory  if it exists.  These  files are
  13230.     created by you in order to supply 'hooks' to external programs in  areas
  13231.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  13232.     these files.
  13233.  
  13234.  
  13235.  
  13236.  
  13237.  
  13238.  
  13239.  
  13240.  
  13241.  
  13242.  
  13243.  
  13244.  
  13245.  
  13246.  
  13247.  
  13248.  
  13249.  
  13250.  
  13251.  
  13252.  
  13253.  
  13254.  
  13255.  
  13256.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13257.  
  13258.  
  13259.  
  13260.     Using Magnum BBS as a USER                                    Page  7-41
  13261.     The RJE MENU
  13262.  
  13263.  
  13264.  
  13265.     The RJE MENU currently has 8 menu selections available:
  13266.  
  13267.                         RJEMENU_QUIT: (menu selection Q)
  13268.  
  13269.     Like any other QUIT MENU command, selecting this menu option will return
  13270.     the user to the main menu.
  13271.  
  13272.                        RJEMENU_STATUS: (menu selection S)
  13273.  
  13274.     Choosing this menu selection will display the status of any RJE job(s)
  13275.     you started. First, you'll be prompted for a date which Magnum will use
  13276.     to start the search from. After you've responded to this prompt, the
  13277.     display might look similar to the following:
  13278.  
  13279.                          (Seconds)          (S e c o n d s)
  13280.       RJE_NAME START_DATE START  STOP_DATE  STOP   TTL_TIME  STATUS C  L PID
  13281.     50F0A12935 05/15/1990 12935 05/15/1990 12988         63    done 1 25 918
  13282.     50F0A18043 05/15/1990 18043                             running 1 25 926
  13283.  
  13284.     The above example display shows the RJE_NAME (job name Magnum assigned),
  13285.     the date started, the time started  (in seconds from midnight).  If  the
  13286.     job is still running, the  STOP_DATE and STOP time will  be meaningless,
  13287.     otherwise they'll be  filled in.   The STATUS tells  whether the job  is
  13288.     still running or whether its complete.  C stands for priority CLASS, and
  13289.     L stands for priority  LEVEL within the priority  class.  PID will  only
  13290.     appear if the Sysop is listing  the status of jobs, and will  not appear
  13291.     for normal users.   PID is the Process  IDentification of the job.   See
  13292.     the explanation of the @E command for further information.
  13293.  
  13294.                         RJEMENU_LIST: (menu selection L)
  13295.  
  13296.     When a  user selects  this option,  Magnum will  display the RJELIST.BBS
  13297.     file (from your RJE DIRectory) if it exists.  See our sample RJELIST.BBS
  13298.     file (in  your RJE  DIRectory for  an example  of how  to put  this file
  13299.     together).    Upon  exit  of  displaying  this file, Magnum will run the
  13300.     program contained  in MILC  variable @Z0  with the  parms in  @Z1.  It's
  13301.     suggested that you use the @E1 command to run RJE programs instead,  and
  13302.     blank out the @Z0 variable prior to exiting this file (ie:  @Z0="");
  13303.  
  13304.                        RJEMENU_DELETE: (menu selection K)
  13305.  
  13306.     Choosing  this  option  will  result  in  Magnum  prompting  you for the
  13307.     10-character jobname of the  RJE job you wish  to kill (terminate).   If
  13308.     the job is still active (running), Magnum will terminate it.
  13309.  
  13310.                        RJEMENU_FILES: (menu selection C)
  13311.  
  13312.     This menu selection will  list the completed RJE  jobs ready for you  to
  13313.     download, giving filename, creation date, expiration date, and size.
  13314.  
  13315.                        RJEMENU_SYSOP: (menu selection X)
  13316.  
  13317.  
  13318.  
  13319.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13320.  
  13321.  
  13322.  
  13323.     Page  7-42                                    Using Magnum BBS as a USER
  13324.                                                                 The RJE MENU
  13325.  
  13326.  
  13327.     This menu selection will allow the Sysop to perform the L and C  options
  13328.     above but will be able to supply a user id instead of his/her own.   The
  13329.     L option equivalent will also  show extended information about the  job,
  13330.     such as the program name, and the parameters which were used to pass  to
  13331.     the program.
  13332.  
  13333.                         RJEMENU_HELP: (menu selection ?)
  13334.  
  13335.     This menu  selection will  display the  RJEHELP.BBS file  from the  HELP
  13336.     DIRectory.
  13337.  
  13338.                       RJEMENU_GOODBYE: (menu selection G)
  13339.  
  13340.     This menu selection prompts the user  as to whether they really want  to
  13341.     end their session or not.  If Yes, they are prompted as to whether  they
  13342.     wish to leave  a Comment to  the Sysop prior  to disconnecting (See  the
  13343.     VERIFY_GOODBYE option in the STARTUP file).
  13344.  
  13345.                         RJEMENU_OPT1: (menu selection 1)
  13346.                         RJEMENU_OPT2: (menu selection 2)
  13347.  
  13348.     These menu selections  are normally turned  off by setting  the security
  13349.     level to that of  one higher than any  of your users unless  you plan on
  13350.     using them.  When selected, Magnum will display the file RJEOPT1.BBS  or
  13351.     RJEOPT2.BBS from your DISPLAY DIRectory  if it exists.  These  files are
  13352.     created by you in order to supply 'hooks' to external programs in  areas
  13353.     other than  Child (door)  or RJE  menus by  embedding MILC commands into
  13354.     these files.
  13355.  
  13356.     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  13357.  
  13358.     This concludes chapter 7 "Using Magnum BBS as a User".  After using  the
  13359.     BBS as a Sysop for a while, you'll see why we chose to write the  system
  13360.     as a text application rather than  as a PM application.  Because  it's a
  13361.     text application, you can log on to your BBS remotely as Sysop from  any
  13362.     terminal regardless of operating  system and perform any  sysop function
  13363.     you'd ordinarily have  to be at  the Sysop console  to do.   You'll find
  13364.     Magnum BBS to  be a powerful,  full-featured BBS when  compared to other
  13365.     BBS systems.  The remaining  chapters in this manual deal  with advanced
  13366.     Sysop  functions.    It  is  suggested  that  you  become  familiar  and
  13367.     comfortable with  everything covered  so far  before attempting  to deal
  13368.     with the following chapters.
  13369.  
  13370.  
  13371.  
  13372.  
  13373.  
  13374.  
  13375.  
  13376.  
  13377.  
  13378.  
  13379.  
  13380.  
  13381.  
  13382.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13383.  
  13384.  
  13385.  
  13386.     Magnum's ACE (Automatic Command Execution) Event Handler       Page  8-1
  13387.  
  13388.  
  13389.  
  13390.     Incorporated into Magnum BBS, is a powerful event handler known as  ACE.
  13391.     ACE  is  an  acronym  for  "Automatic  Command Execution" because that's
  13392.     exactly what it does - automatically executes commands at  predetermined
  13393.     days and times.
  13394.  
  13395.     When you first start Magnum  BBS by starting the MBBS.EXE  program, part
  13396.     of the MBBS.EXE startup routines look for a file by the name of MBBS.ACE
  13397.     in the PROGRAM directory (the same directory that MBBS.EXE is found in).
  13398.     This is  why it's  important that  you make  the current  directory your
  13399.     PROGRAM directory  prior to  starting MBBS.EXE.   If  MBBS.EXE finds the
  13400.     file MBBS.ACE, it reads the file  and stores or queues any ACE  commands
  13401.     it finds within the file and  issues a message similar "xx ACE  commands
  13402.     queued".
  13403.  
  13404.     ACE commands are of two types:  stored (queued), and immediate.   Stored
  13405.     or  queued  commands  are  executed  on  predetermined day(s) and times.
  13406.     Immediate commands are those which are executed right away.
  13407.  
  13408.     When MBBS.EXE starts up, it will  attempt to read the file MBBS.ACE  (if
  13409.     it exists),  and store  the appropriate  ACE commands  within for  later
  13410.     execution.  MBBS.ACE is expected to be found in the PROGRAM directory  -
  13411.     the same directory MBBS.EXE is in.
  13412.  
  13413.     MBBS.ACE is a normal text file  which you create with your text  editor.
  13414.     Blank lines are  ignored, and lines  starting with the  exclamation mark
  13415.     character (!) will be treated as comments (ignored).
  13416.  
  13417.     Since blank lines and lines starting with the ! character are ignored by
  13418.     MBBS, now would be  a good time to  introduce you to an  actual MBBS.ACE
  13419.     file.  From this point on, the rest of the documentation for ACE will be
  13420.     in the format expected to be found in the MBBS.ACE file (beginning  with
  13421.     the - - -  CUT - - -  line, and ending with  the - - -  CUT - - -  line.
  13422.     Most of the following are comments):
  13423.  
  13424.     ! - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT
  13425.  
  13426.     ! To use MBBS automated commands, you need to create an MBBS command
  13427.     ! file. To accomplish this, you'll need a text editor to create the file
  13428.     !
  13429.     ! The file  should  have  a  name  of  MBBS.ACE  (where  ACE is an
  13430.     ! acronym for Automatic Command Execution). The MBBS.ACE file should be
  13431.     ! placed in your PROGRAM directory (the same directory as MBBS.EXE
  13432.     ! resides in).
  13433.  
  13434.     ! Here is the Syntax of an MBBS ACE command:
  13435.  
  13436.     ! CCCCCCC,HH:MM,SSSSSSSSSSSS[,wwww]
  13437.     ! ^       ^     ^
  13438.     ! |       |     |
  13439.     ! |       |     |
  13440.     ! |       |     |_Command (see below)
  13441.     ! |       |
  13442.     ! |       |_Time (hh:mm) in 24-hour format (range is 00:00 to 23:59)
  13443.  
  13444.  
  13445.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13446.  
  13447.  
  13448.  
  13449.     Page  8-2       Magnum's ACE (Automatic Command Execution) Event Handler
  13450.  
  13451.  
  13452.     ! |
  13453.     ! |_Days applicable (0=Sun,1=Mon,...6=Sat)  ie: 12345 applies to Mon-Fri
  13454.  
  13455.     ! Text lines starting with the '!' character are comments (ignored)
  13456.  
  13457.     ! MBBS has a physical limit of 100 command lines. This means that the
  13458.     ! MBBS.ACE file must not contain more than 100 commands. Blank lines and
  13459.     ! comments (lines starting with the ! character) are not commands and
  13460.     ! are not counted in the 100 command limit. "Immediate Commands"
  13461.     ! (commands starting with the * character described later) are not
  13462.     ! counted in the 100 command limit either.
  13463.  
  13464.     ! Description of Command:
  13465.  
  13466.     ! The Command SSSSSSSSSSSS can be any Magnum MBBS command just as  you'd
  13467.     ! enter on the MBBS  command line beginning with  the node# or *,  OR it
  13468.     ! can be any enclosed in double quotes (" ") if it's a command you  wish
  13469.     ! to have OS/2 run  instead.  If you're  using OS/2 commands (in  double
  13470.     ! quotes), an additional parameter must follow - WAIT, NOWAIT or DETACH.
  13471.     ! Please realize the consequences of the WAIT parameter:  MBBS comes  to
  13472.     ! a grinding HALT (won't answer phone, won't accept commands, etc) until
  13473.     ! the process  it's WAITing  for finishes.   With  the NOWAIT  or DETACH
  13474.     ! parm, the process runs in the background while MBBS continues to  run.
  13475.     ! If  the  process  you're   starting  (in  double  quotes)   writes  to
  13476.     ! stdout/stderr (the screen/console), you should redirect it's output to
  13477.     ! the nul device,  or to files  (redirection is accomplished  with the <
  13478.     ! character and  the >  characters.   Example MBBS  commands will follow
  13479.     ! later.
  13480.  
  13481.     ! NOTE: MBBS.EXE can read (and store) a maximum of 100 ACE commands.
  13482.     !       With the Alternate Syntax described below (immediate execution
  13483.     !       rather than stored for later execution), immediate ACE commands
  13484.     !       are NOT counted as part of the 100 maximum limit because they
  13485.     !       are executed immediately (as soon as they're read) and then
  13486.     !       discarded (not stored). Also note that the MBBS command (entered
  13487.     !       manually at the "Command ==> " prompt) of "* ACE INIT" will
  13488.     !       re-read the MBBS.ACE command file, overwriting all previously
  13489.     !       stored ACE commands with the ACE commands just read with one
  13490.     !       exception - Immediate commands (those starting with the * char)
  13491.     !       will be ignored - immediate commands will ONLY be processed when
  13492.     !       the MBBS program is initially started. This insures that dual
  13493.     !       copies of the same program(s) are not running unintentionally.
  13494.     !       Also, another MBBS command (entered manually at the
  13495.     !       "Command ==> " prompt) of "* SSSSSSS,wwww" has the same syntax
  13496.     !       as the ACE "immediate" command except that no comma follows
  13497.     !       the * char.
  13498.     !
  13499.  
  13500.     !
  13501.     ! Alternate Syntax:
  13502.     !
  13503.     !              *,SSSSSSSSSS[,wwww]
  13504.     !
  13505.     ! When used this way, the command executes immediately. When MBBS.EXE
  13506.  
  13507.  
  13508.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13509.  
  13510.  
  13511.  
  13512.     Magnum's ACE (Automatic Command Execution) Event Handler       Page  8-3
  13513.  
  13514.  
  13515.     ! starts, it reads the commands in the MBBS.ACE file, when a command
  13516.     ! starts with the * character, it is executed immediately!
  13517.     !
  13518.     ! Internal MBBS commands may be entered exactly as you'd enter them at
  13519.     ! the MBBS command prompt (Command ==> ). External commands -
  13520.     ! programs, .CMD files, or any other command you'd type at the OS/2
  13521.     ! command line are to be enclosed within double quotes immediately
  13522.     ! followed by a comma (,) and one of the keywords: WAIT, NOWAIT or
  13523.     ! DETACH, where these keywords are defined as:
  13524.     !
  13525.     !    WAIT   - MBBS stops what it's doing and starts the external command
  13526.     !             or program. MBBS will NOT resume until the external
  13527.     !             command finishes. Programs started in this fashion may
  13528.     !             use the console for input/output operations (stdin,
  13529.     !             stdout, stderr).
  13530.     !
  13531.     !    NOWAIT - MBBS starts the external command or program and
  13532.     !             immediately resumes normal BBS operation while the
  13533.     !             external command or program executes concurrently. NOTE:
  13534.     !             Programs started in this fashion must NOT perform any
  13535.     !             console input/output operations. You may still run
  13536.     !             programs that use console input/output operations by
  13537.     !             redirecting their output to the NUL device, and
  13538.     !             redirecting their input to a file. For example, the
  13539.     !             command: "mbbsexec.exe 1>nul 2>nul" redirects all program
  13540.     !             output to the NUL device (a dummy file). For those of you
  13541.     !             unfamiliar with the redirection of output in this fashion,
  13542.     !             OS/2 predifines the first three file handles of any
  13543.     !             program as 0 (stdin), 1 (stdout), and 2 (stderr). By
  13544.     !             rerouting output with the statements "1>nul" and "2>nul",
  13545.     !             you ensure that both stdout and stderr are rerouted to
  13546.     !             the NUL device. Unlike DOS where ">nul" redirected both
  13547.     !             stdout and stderr to the NUL device, the same ">nul"
  13548.     !             statement in OS/2 only redirects stdout to the NUL device.
  13549.     !             It is important that NO output be written to the screen
  13550.     !             when a program is started with the NOWAIT option, and that
  13551.     !             no input is expected from the keyboard.
  13552.     !
  13553.     !    DETACH - Similar to the NOWAIT option above, but with the following
  13554.     !             exceptions: The program will be started as a detached
  13555.     !             process which runs in the background, and concurrently
  13556.     !             with other processes in the system. Since the program is
  13557.     !             running as a detached process, it will continue to run
  13558.     !             until it finishes, even if MBBS.EXE is terminated for any
  13559.     !             reason. Console I/O operations are permitted ONLY via
  13560.     !             POPUP windows.
  13561.     !
  13562.  
  13563.     !--------------------------
  13564.     !
  13565.     ! On Startup run program abc.exe and xyz.exe, make Node2 "announce only"
  13566.     !
  13567.     !--------------------------
  13568.  
  13569.  
  13570.  
  13571.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13572.  
  13573.  
  13574.  
  13575.     Page  8-4       Magnum's ACE (Automatic Command Execution) Event Handler
  13576.  
  13577.  
  13578.     *,"abc.exe 1>nul 2>nul",wait
  13579.     *,"xyz.exe 1>nul 2>nul",detach
  13580.     *,2 announce
  13581.  
  13582.     !--------------------------
  13583.     !
  13584.     ! On Mon thru Fri, Shutdown Node3 at 09:00 and - Activate again at 17:00
  13585.     !
  13586.     !--------------------------
  13587.  
  13588.     12345,08:00,3 shutdown 09:00
  13589.     12345,17:00,3 Active
  13590.  
  13591.     !--------------------------
  13592.     !
  13593.     ! Prepare for System Maintenance at 02:00 every morning
  13594.     !
  13595.     ! Note that node 4 (console) is left active, otherwise, if all nodes
  13596.     ! were shutdown, MBBS would terminate.
  13597.     !
  13598.     ! Note that 02:01 is supplied for the time to run mbbsexec.exe, and for
  13599.     ! the commands following it to reactivate nodes 1-3. Even if
  13600.     ! mbbsexec.exe takes 20 minutes to complete, all commands scheduled for
  13601.     ! 02:01 will be processed in order. Since the WAIT parameter is
  13602.     ! specified, the reactivation of nodes 1-3 will not take place until
  13603.     ! mbbsexec.exe finsihes. It is also important to know that had the
  13604.     ! reactivation commands been scheduled for 02:02 (or 02:05) for example,
  13605.     ! and mbbsexec.exe took 10 minutes to complete, the time would be 02:10
  13606.     ! upon completion and any commands scheduled from 02:01 to 02:09
  13607.     ! inclusive would not be processed. Therefore, whenever you execute a
  13608.     ! program with the WAIT parameter, you should know how long the program
  13609.     ! will take to complete for obvious reasons. However, by supplying the
  13610.     ! reactivation commands (ie: 0123456,02:01,1 active) as in the sample
  13611.     ! below with the same time (02:01) as the program, you insure that the
  13612.     ! commands will be processed upon completion of the mbbsexec.exe
  13613.     ! program. The exception to this is any command(s) following the
  13614.     ! "shutdown" ace command. Note below how commands following "shutdown"
  13615.     ! are issued AFTER the scheduled shutdown time.
  13616.     !
  13617.     !--------------------------
  13618.  
  13619.     0123456,01:00,1 shutdown 02:00
  13620.     0123456,01:00,2 shutdown 02:00
  13621.     0123456,01:00,3 shutdown 02:00
  13622.     0123456,02:01,"mbbsexec.exe maintain",WAIT
  13623.     0123456,02:01,1 active
  13624.     0123456,02:01,2 active
  13625.     0123456,02:01,3 active
  13626.  
  13627.     !---------------------------------------------------------------------
  13628.  
  13629.  
  13630.     ! - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT - - - CUT
  13631.  
  13632.  
  13633.  
  13634.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13635.  
  13636.  
  13637.  
  13638.     Magnum's ACE (Automatic Command Execution) Event Handler       Page  8-5
  13639.  
  13640.  
  13641.     This has been an explanation of  the creation, syntax and usage of  an
  13642.     MBBS.ACE  command  file.    When  you  run  the  MBBS.EXE program, the
  13643.     MBBS.ACE  file  will  be  read  and  checked  for  syntax errors.  ACE
  13644.     commands  will  be  stored  (queued)  for  later execution.  Immediate
  13645.     commands will be processed right away.
  13646.  
  13647.     All executed ACE commands are logged to file ACE.LOG (in your  PROGRAM
  13648.     directory) at the time of execution.
  13649.  
  13650.     NOTE: ANY command that can be entered at the MBBS.EXE's "Command => "
  13651.           prompt can be an ACE command (see the chapter "Magnum's Sysop
  13652.           Console").
  13653.  
  13654.  
  13655.  
  13656.  
  13657.  
  13658.  
  13659.  
  13660.  
  13661.  
  13662.  
  13663.  
  13664.  
  13665.  
  13666.  
  13667.  
  13668.  
  13669.  
  13670.  
  13671.  
  13672.  
  13673.  
  13674.  
  13675.  
  13676.  
  13677.  
  13678.  
  13679.  
  13680.  
  13681.  
  13682.  
  13683.  
  13684.  
  13685.  
  13686.  
  13687.  
  13688.  
  13689.  
  13690.  
  13691.  
  13692.  
  13693.  
  13694.  
  13695.  
  13696.  
  13697.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13698.  
  13699.  
  13700.  
  13701.     Page  8-6       Magnum's ACE (Automatic Command Execution) Event Handler
  13702.                                                           Advanced ACE Usage
  13703.  
  13704.  
  13705.  
  13706.     In addition to the syntax covered earlier,  you also have the capability
  13707.     to queue a command based on the date of the month!  For example, if  you
  13708.     wanted to queue (store) an ACE command to be executed on the 15th day of
  13709.     each month (at 02:01), your ACE command might look like this:
  13710.  
  13711.            -15,02:01,"maintain.cmd",wait
  13712.  
  13713.     or suppose  a command  is to  be executed  on the  1st of each month (at
  13714.     01:00):
  13715.  
  13716.            -1,01:00,2 shutdown 02:00
  13717.  
  13718.     the secret is the - character (the minus sign) in column 1 of the queued
  13719.     command.  Keep in mind that February has 28 (or 29) days, therefore,  if
  13720.     you want a command to execute on  the 30th of each month, it will  never
  13721.     execute in  February!   Likewise, if  you specify  for a  command to  be
  13722.     executed on the 31st of each month, it will never execute during  months
  13723.     containing less than 31 days!
  13724.  
  13725.     Additionally, you also have the capability to queue a command based on a
  13726.     specific date!   For  example, if  you wanted  to queue  (store) an  ACE
  13727.     command to be executed on July 4, 1994 at 02:01, your ACE command  might
  13728.     look like this:
  13729.  
  13730.            07/04/1994,02:01,"maintain.cmd",wait
  13731.        or
  13732.            04.07.1994,02:01,2 shutdown 02:00
  13733.  
  13734.     Note  that  the  date  can  be  either  in European or U.S. date format.
  13735.     Leading 0's for  month or day  are not necessary  (ie:  7/4/1994).   The
  13736.     year (if provided) can be 1 to  4 digits.  The year is optional,  and if
  13737.     omitted (ie:   7/4  or 4.7  or 07/04  or 04.07),  then the  command will
  13738.     execute on  July 4th  EVERY year.   If  a 1-digit  year is provided, the
  13739.     current decade will be  used (ie:  if  the current year is  1993 and you
  13740.     provide 5 for the  year, then 1995 will  be used); if a  2-digit year is
  13741.     provided,  the  current  century  will  be  used;  if  a 3-digit year is
  13742.     provided, the current millenium  will be used.   A 4-digit year will  be
  13743.     accepted as is.
  13744.  
  13745.  
  13746.  
  13747.  
  13748.  
  13749.  
  13750.  
  13751.  
  13752.  
  13753.  
  13754.  
  13755.  
  13756.  
  13757.  
  13758.  
  13759.  
  13760.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13761.  
  13762.  
  13763.  
  13764.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-1
  13765.  
  13766.  
  13767.                      MBBSEXEC Utility for "Magnum OS/2 BBS"
  13768.           (C)Copyright 1989,1993 Gilmore Systems - All rights reserved
  13769.  
  13770.     This chapter explains the use of MBBSEXEC.EXE,  a Sysop utility  program
  13771.     for the management of the Magnum BBS database files USER.DAT,  USER.KEY,
  13772.     FILE.DAT, MSG.DAT, RJE.DAT, and UTILIZ.DAT.
  13773.  
  13774.     As a Sysop of  a Magnum OS/2 BBS,  you have probably discovered  a great
  13775.     deal of routine things which you'd  like to do with the contents  of the
  13776.     records and fields  within Magnum's databases.   Some examples  of these
  13777.     routine tasks which immediately come to mind are:
  13778.  
  13779.        - Delete all users whose last call was 180 days ago or greater
  13780.        - Delete all messages older than 90 days
  13781.        - Delete all files older than 365 days
  13782.        - Upgrade all users who've entered 2 or more public messages
  13783.        - Lower the security level of all users who's memodate has expired
  13784.        - Add an expiration date to all messages or files in a specific area
  13785.        - Increase time limit for users who've uploaded 10 or more files
  13786.        - Delete all files having less than 10 downloads in the past 60 days
  13787.        - List all users with an interest in music (or whatever you choose)
  13788.        - Upgrade Users ONLINE based on the results of a questionairre.
  13789.        - Generate Form Letters and/or Mailing Labels to all users matching
  13790.           specific criteria.
  13791.        - Generate reports showing what percentage of your users fall into
  13792.           specific criteria.
  13793.  
  13794.     This is just a very small example of what can be done with the  MBBSEXEC
  13795.     program.   There is  virtually no  limit on  what you  can do - MBBSEXEC
  13796.     simplifies all of your database management needs.
  13797.  
  13798.     MBBSEXEC is an interpreter  (like BASIC) which interprets  your programs
  13799.     (.MEX files)  and performs  the programming  instructions within.   This
  13800.     powerful interpreter is  similar to the  C programming language  but has
  13801.     slightly stricter rules as far as  opening and closing  braces ( '{' and
  13802.     '}' characters).
  13803.  
  13804.     MBBSEXEC will be covered in two sections of this chapter.  In the  first
  13805.     section  we'll  start  with  a  presentation  of  MBBSEXEC as a 'simple'
  13806.     programming  language.    This  will  provide  those  with  little to no
  13807.     programming experience the information they need in order to write their
  13808.     own  .MEX  programs.    By  using  MBBSEXEC  as  a  'simple' programming
  13809.     language, all of your Magnum database management needs can be taken care
  13810.     of.    In  the  second  section  (the 'Advanced' section), we'll present
  13811.     advanced  techniques  oriented  more  towards  those  with   programming
  13812.     experience, yet keeping it simple enough to understand (where  possible)
  13813.     such that those  new to programming  can apply the  advanced features to
  13814.     their .MEX programs.
  13815.  
  13816.     An MBBSEXEC  program consists  of a  regular ASCII  text file  which you
  13817.     create with  your favorite  text editor.   When  you create  an MBBSEXEC
  13818.     program with your text  editor, you'll need to  save it with a  filename
  13819.     extension of ".MEX" (MbbsEXecutable).  MBBSEXEC reads your .MEX file and
  13820.     processes the statements  within.  In  other words, if  you've created a
  13821.  
  13822.  
  13823.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13824.  
  13825.  
  13826.  
  13827.     Page  9-2                 The MBBSEXEC Sysop Maintenance Utility Program
  13828.  
  13829.  
  13830.     text file to  list all users  with an interest  in music, your  MBBSEXEC
  13831.     input file  would probably  have a  name of  MUSIC.MEX, and  you'd start
  13832.     MBBSEXEC with:
  13833.  
  13834.          MBBSEXEC MUSIC
  13835.  
  13836.     MBBSEXEC assumes an  extension of .MEX  although if you  supply your own
  13837.     extension MBBSEXEC will use that filename instead.
  13838.  
  13839.     Following is an example of an MBBSEXEC program which will compile a list
  13840.     of all users who've listed MUSIC as one of their interests:
  13841.  
  13842.        !
  13843.        !   List all users with an interest in MUSIC
  13844.        !
  13845.  
  13846.        #CONFIG_FILE: E:\GS\MAGNUM\MBBSINIT.1
  13847.        #LOG_FILE: MUSIC.LOG
  13848.        #DATABASE: USER
  13849.  
  13850.        #START
  13851.  
  13852.        if(@i ~ "music") {
  13853.                         log("Interests: ",@i)
  13854.                         log("ID: /",@id)
  13855.                         log("lastname: ",@lastname)
  13856.                         log("firstname: ",@firstname)
  13857.                         log("middlename: ",@middlename)
  13858.                         log("---------------------------")
  13859.                         }
  13860.  
  13861.        #STOP
  13862.  
  13863.     Note in the above MBBSEXEC program, the very first thing you see is  the
  13864.     exclamation  mark  (!)  character.    Any  lines  starting  with the '!'
  13865.     character will be  ignored - it  merely serves as  a comment line.   The
  13866.     exclamation  mark  (!)  always  indicates  the  start of a comment - the
  13867.     comment always ends at the physical end of the text line the !  appeared
  13868.     in.  There are only three exceptions as to when the ! character does NOT
  13869.     start a comment:
  13870.  
  13871.       - If it appears within double quotes ("...!...").
  13872.       - If it is immediately followed by the "=" character ( != ).
  13873.       - If it is immediately preceeded & followed by single quotes ( '!' ).
  13874.  
  13875.     Next, three  (3) '#'  statements follow.   The  first is "#CONFIG_FILE:"
  13876.     which tells MBBSEXEC  which database to  work on by  giving it the  full
  13877.     filespec (path  & filename) of the  mbbs initialization  file for Node01
  13878.     (note the  filename extension  tells MBBSEXEC  which node  to work  on).
  13879.     MBBSEXEC obtains  all of  it's information  such as  database names from
  13880.     this  file.    Usually  MBBSINIT.1  is  all that's needed since most BBS
  13881.     sysops running  mulitple nodes  are pointing  the database  files to the
  13882.     same SESION DIRectory.   In the event that  the Sysop is running  2 or 3
  13883.     unique BBSes  (different SESSION  DIRectories and  thus different  user,
  13884.  
  13885.  
  13886.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13887.  
  13888.  
  13889.  
  13890.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-3
  13891.  
  13892.  
  13893.     file,  rje  and  message  databases),  you  would  need  to  change  the
  13894.     #CONFIG_FILE  statement  to  point  to  MBBSINIT.2 or MBBSINIT.3 so that
  13895.     those  databases  will  also  be  changed.   The second statement is the
  13896.     "#LOG_FILE:  "  statement which gives  MBBSEXEC the filename  (or device
  13897.     name such as "prn") in which to write statements to.  The 3rd one is the
  13898.     "#DATABASE:  " statement which tells MBBSEXEC which database to work  on
  13899.     (can be USER, MSG, FILE, RJE or UTILIZ) - in this case, it's USER.
  13900.  
  13901.     Next comes the  actual MBBSEXEC program  which starts with  the "#START"
  13902.     statement and ends with the "#STOP" statement - all text falling  within
  13903.     the  "#START"   and  "#STOP"   statements  are   code  or  instructional
  13904.     statements.
  13905.  
  13906.     Examining the above code, we notice that the first code statement is:
  13907.  
  13908.        if(@i ~ "music") {
  13909.  
  13910.     Breaking down this statement, we note that the syntax of an IF statement
  13911.     is:
  13912.  
  13913.        if(expression) {
  13914.  
  13915.     where "expression" is some sort of comparison operation.  In this  case,
  13916.     the '~' character separating the "@i" from "music" is an operation which
  13917.     checks to see  if string2 is  contained within string1.   In this  case,
  13918.     string1  is  "@i"  which  is  MBBSEXEC's  notation for "USER INTERESTS".
  13919.     Should the string  "music" appear within  string1 (USER INTERESTS),  the
  13920.     result will be TRUE, otherwise FALSE.  NOTE THAT THE OPENING BRACE ( { )
  13921.     MUST APPEAR  ON THE  SAME LINE  AS THE  "IF(expression)" statement.   In
  13922.     other words:
  13923.  
  13924.        if(expression)             this is INCORRECT
  13925.           {
  13926.           .
  13927.           .
  13928.           }
  13929.  
  13930.  
  13931.        if(expression) {           this is correct
  13932.                       .
  13933.                       .
  13934.                       }
  13935.  
  13936.     If the "expression" is TRUE,  then MBBSEXEC will perform the  statements
  13937.     enclosed between  the starting  and ending  braces (  { and  } ). If the
  13938.     "expression" is FALSE,  then MBBSEXEC will  skip to the  first statement
  13939.     following the ending brace ( } ). Please note that the ending brace must
  13940.     be on  a line  by itself,  while the  beginning brace  must be the first
  13941.     nonspace character appearing after an "if(expression)" statement.
  13942.  
  13943.     Note that  within the  comparison expression,  case (upper/lowercase) is
  13944.     not important.  "music", "Music", "MUSIC", "MuSic" are all identical  as
  13945.     far as MBBSEXEC is concerned.
  13946.  
  13947.  
  13948.  
  13949.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  13950.  
  13951.  
  13952.  
  13953.     Page  9-4                 The MBBSEXEC Sysop Maintenance Utility Program
  13954.  
  13955.  
  13956.     Within the braces in the above example is a series of "log"  statements.
  13957.     A "log" statement merely writes output to the "LOG" file you  specificed
  13958.     in the "#LOG_FILE:   " statement.  The  basic syntax of a  log statement
  13959.     is:
  13960.  
  13961.        log("quoted string",@field)
  13962.  
  13963.           or
  13964.  
  13965.        log("quoted string")
  13966.  
  13967.     The  "quoted string" parameter  gets written  to the  log file,  and the
  13968.     @field writes  the current  value of  @field to  the log  file.   In the
  13969.     former, @field can be any of the predefined user fields (we'll present a
  13970.     list of predefined field names later).
  13971.  
  13972.     MBBSEXEC  will  perform  the  statements  between  the  #START and #STOP
  13973.     statements once for EACH record within the USER database.  It will  scan
  13974.     every  @I  field  (user  interests)  for  the  word  "MUSIC", and if the
  13975.     comparison is TRUE, MBBSEXEC will  perform all of the statements  within
  13976.     the { and } block.  The list might look something like this:
  13977.  
  13978.        Interests: FISHING SWIMMING MUSIC CHESS
  13979.        ID: /158
  13980.        lastname: SMITH
  13981.        firstname: JOHN
  13982.        middlename: S
  13983.        ---------------------------
  13984.        Interests: COMPUTERS MUSIC MIDI
  13985.        ID: /202
  13986.        lastname: JOHNSON
  13987.        firstname: ALFRED
  13988.        middelname: E
  13989.        ---------------------------
  13990.        Interests: OS/2 MUSIC CARS BOATS
  13991.        ID: /303
  13992.        lastname: DUNN
  13993.        firstname: JULIE
  13994.        middlename: SARAH
  13995.        ---------------------------
  13996.  
  13997.     This  example  only  made  a  list  of  users  with a specific interest.
  13998.     MBBSEXEC is  also capable  of modifying  user fields  as we'll  see in a
  13999.     moment.
  14000.  
  14001.  
  14002.  
  14003.  
  14004.  
  14005.  
  14006.  
  14007.  
  14008.  
  14009.  
  14010.  
  14011.  
  14012.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14013.  
  14014.  
  14015.  
  14016.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-5
  14017.     MBBSEXEC Field Names
  14018.  
  14019.  
  14020.  
  14021.     MBBSEXEC  incorporates   predefined  field   names  for   accessing  the
  14022.     individual fields within the databases.  When you access the Sysop  menu
  14023.     from within Magnum BBS, you'll notice  that most of the field names  for
  14024.     the User Database area will usually  be the same names as those  used by
  14025.     the MBBSEXEC program.  The '@' character precedes all field names within
  14026.     the MBBSEXEC program.
  14027.  
  14028.     MBBSEXEC  supports  the  USER.DAT  and  USER.KEY databases, the FILE.DAT
  14029.     database, the MSG.DAT database, the RJE.DAT and the UTILIZ.DAT database.
  14030.  
  14031.     NOTE: IT IS STRONGLY RECOMMENDED THAT YOU BACK UP YOUR *.DAT AND *.KEY
  14032.           FILES BEFORE RUNNING THE MBBSEXEC PROGRAM. THIS WAY YOU'LL BE ABLE
  14033.           TO RESTORE THE DATABASES IN THE EVENT OF AN UNEXPECTED ALTERATION
  14034.           TO THE DATABASES.
  14035.  
  14036.     IMPORTANT: IF AN ERROR OCCURS DURING PROCESSING YOUR .MEX FILE (SYNTAX
  14037.                OR OTHERWISE), AND A LINE NUMBER INDICATING WHICH LINE THE
  14038.                ERROR OCCURED, MBBSEXEC CREATES A FILE WITH AN EXTENSION OF
  14039.                .SNP (SNAPSHOT) - THIS .SNP FILE IS THE FILE IT IS REFERRING
  14040.                TO - NOT YOUR ORIGINAL .MEX FILE!!! IF YOUR .MEX FILE IS
  14041.                CALLED MUSIC.MEX, THE REFERENCE TO THE ERROR IS IN THE LINE
  14042.                NUMBER SPECIFIED BY THE ERROR MESSAGE IN FILE MUSIC.SNP
  14043.  
  14044.     Before beginning,  we'll present  the allowable  field names  for the  5
  14045.     databases which MBBSEXEC  will accept.   Before presenting the  list, we
  14046.     must point out that there  is one fieldname used internally  by MBBSEXEC
  14047.     which is not a  part of the database  fields.  This fieldname  is @TODAY
  14048.     which, when encountered  in an MBBSEXEC  program statement, is  replaced
  14049.     with the current date.  This allows such statements as:
  14050.  
  14051.        if(@lastcall < @today - 90) {
  14052.                                    @deleted = TRUE
  14053.                                    log("Deleted ID: /",@id)
  14054.                                    }
  14055.  
  14056.     The above statement would  delete all users who's  last call to the  bbs
  14057.     was greater than 90 days ago from today.
  14058.  
  14059.     All MBBSEXEC fieldnames are case  insensitive meaning that you can  type
  14060.     these fieldnames in uppercase, lowercase or any combination.
  14061.  
  14062.     NOTE: All DATE fields are in U.S. format (MM/DD/YYYY) and must be 10
  14063.           characters in length. Even if you're using a European version of
  14064.           Magnum, the internal storage of dates are in U.S. format!
  14065.  
  14066.  
  14067.  
  14068.  
  14069.  
  14070.  
  14071.  
  14072.  
  14073.  
  14074.  
  14075.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14076.  
  14077.  
  14078.  
  14079.     Page  9-6                 The MBBSEXEC Sysop Maintenance Utility Program
  14080.                                            Field Names for the USER Database
  14081.  
  14082.  
  14083.     Following is a list of the fieldnames and their meanings.  Note that  in
  14084.     column 1, a lowercase letter appears which indicates what type of  field
  14085.     it  is.    This  lowercase  letter  is  one  of:    s=string, n=numeric,
  14086.     c=character, b=boolean.  You'll need  to know this information later  on
  14087.     when you write your MBBSEXEC programs.  Here is the USER fieldname list:
  14088.  
  14089.     s  @LASTNAME       - User's Last Name
  14090.     s  @FIRSTNAME      - User's First Name
  14091.     s  @MIDDLENAME     - User's Middle Name
  14092.     n  @ID             - User's ID number (NOTE: number only, no '/' char)
  14093.     s  @STREET1        - User's Company Name or User's Handle (alias name)
  14094.     s  @STREET2        - User's Street Address
  14095.     s  @CITY           - User's City
  14096.     s  @STATE          - User's State or Province
  14097.     s  @ZIP            - User's Zip Code or other Zone Info
  14098.     s  @COUNTRY        - User's Country
  14099.     s  @FIRSTCALL      - Date User First Called the BBS (MM/DD/YYYY)
  14100.     s  @LASTCALL       - Date User Last Called the BBS (MM/DD/YYYY)
  14101.     s  @TIMELAST       - Time User Last Called (HH:MM in 24-hr format)
  14102.     s  @PASSWORD       - User's Password
  14103.     s  @DOB            - User's Date of Birth (MM/DD/YYYY)
  14104.     s  @PHONE1         - User's Home Phone#
  14105.     s  @PHONE2         - User's Company Phone#
  14106.     s  @CPUTYPE        - User's Computer Type [can be overridden with a
  14107.                          sysop-defined field. See CPUTYPE_OVERRIDE in Ch 1.
  14108.     s  @CONFERENCES    - User's Conferences allowed (ie: "abefh")
  14109.     s  @MEMODATE1      - User's Memodate #1
  14110.     s  @MEMODATE2      - User's Memodate #2
  14111.     b  @PRIVMSG        - Is user allowed to enter Private Messages?
  14112.     b  @DELMSG         - Is user allowed to delete messages?
  14113.     s  @SYSOP_COMMENT  - Sysop's Comment about user
  14114.     c  @XFERTYPE       - User's default file xfer protocol (X,C,1,Y,G,Z,N)
  14115.     c  @PERIODTYPE     - User's Period Type (D,W,M,Y)
  14116.     b  @EXPERT         - Expert mode on?
  14117.     b  @LOCKED_OUT     - Is user locked out?
  14118.     b  @COLOR          - Is user using ANSI color?
  14119.     b  @DISPLAY_MORE   - Does user want the "- - More - -" prompt?
  14120.     b  @ERASE_MORE     - Does user want the "- - More - -" prompt erased?
  14121.     b  @HOTKEYS        - Is user using single-keystroke commands?
  14122.     n  @LINES_PAGE     - User's number of lines per page
  14123.     n  @LEVEL          - User's security level
  14124.     n  @UPLOADS        - Number of uploads user performed
  14125.     n  @DOWNLOADS      - Number of downloads user performed
  14126.     n  @CPS            - User's adjusted Characters Per Second transfer rate
  14127.     n  @UDRATIO        - User's Upload/Download ratio
  14128.     n  @TTL_CALLS      - User's total number of calls
  14129.     n  @REMAINING      - User's time remaining for the last call
  14130.     n  @REMAINING_PERIOD - User's time remaining for the period
  14131.     n  @K_UL           - Kbytes User performed in Uploads
  14132.     n  @K_DL           - Kbytes User performed in Downloads
  14133.     n  @PERIOD_DL      - User's downloads this period
  14134.     n  @PERIOD_K_DL    - User's Kbyte downloads this period
  14135.     n  @DL_THIS_PERIOD - Downloads user performed this period
  14136.  
  14137.  
  14138.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14139.  
  14140.  
  14141.  
  14142.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-7
  14143.     Field Names for the USER Database
  14144.  
  14145.  
  14146.     n  @K_DL_THIS_PERIOD - Kbytes in downloads user performed this period
  14147.     n  @DAILY_TIME     - Daily Time allowed on system
  14148.     n  @DAILY_DL       - Daily downloads User is allowed
  14149.     n  @DAILY_K_DL     - Daily Kbyte downloads User is allowed
  14150.     b  @PRIVACY        - Is user's Privacy switch on?
  14151.     s  @FILE_U_AREAS   - File upload areas allowed
  14152.     s  @FILE_D_AREAS   - File download areas allowed
  14153.     s  @FILE_L_AREAS   - File list areas allowed
  14154.     s  @MSG_R_AREAS    - Message Read areas allowed
  14155.     s  @MSG_W_AREAS    - Message Write areas allowed
  14156.     s  @MSG_L_AREAS    - Message List areas allowed
  14157.     s  @MILC_CMDS      - Display commands allowed
  14158.     s  @I              - User's interests
  14159.     c  @COMPRESS       - User's compression type (A,Z)
  14160.     n  @PUBLM          - Number of public messages entered by user
  14161.     n  @PRIVM          - Number of private messages entered by user
  14162.     b  @DELETED        - Is this user deleted?
  14163.     c  @DATEFORMAT     - User's Date Format (U=US, E=Europe)
  14164.     b  @SUB_FILEDEL    - Subtract upload credit when a user deletes a file?
  14165.     s  @FREE_DL_AREAS  - Specify the area(s) (A-Z) which a user can download
  14166.                          from without being counted toward their UL/DL ratio
  14167.     n  @FREE_DOWNLOADS - The number of FREE downloads the user has performed
  14168.     n  @RJEJOBS        - The number of RJE jobs the user submitted.
  14169.     n  @SENDNULLS      - Number of Nulls to send after CR/LF (usually 0) can
  14170.                          range from 0 to 255.
  14171.     c  @FILELIST_PREF  - The user's FileList preference (C=Chronological
  14172.                          order, R=Reverse Chronological Order). No defaults.
  14173.     b  @REUSE          - Y/N or TRUE/FALSE to indicate that this ID (record)
  14174.                          can or cannot be reused if deleted. Note that in
  14175.                          order for this to be reused, the REUSE_DEL keyword
  14176.                          in your STARTUP.n file(s) must also be set to Y.
  14177.     n  @MSGGROUP       - For those using the extended MsgBase module,
  14178.                          accesses the user's message group field.
  14179.     n  @FILEGROUP      - For those using the extended FileBase module,
  14180.                          access the user's file group field.
  14181.     c  @TYPE           - Magnum supports two kinds of user accounts. USER
  14182.                          and MAIL. This field holds either U for USER or M
  14183.                          for MAIL.
  14184.     n  @FILEBASE       - The LAST FileBase the User was in, or the default
  14185.                          FileBase to jump to the next time the user logs on.
  14186.     n  @MSGBASE        - The LAST MsgBase the User was in, or the default
  14187.                          MsgBase to jump to the next time the user logs on.
  14188.     b  @RMAIL          - Y/N or TRUE/FALSE to indicate that this user can or
  14189.                          cannot use the remote mail system. If TRUE, the
  14190.                          user can enter a message to another user on another
  14191.                          Magnum system supported by the Sysop. If FALSE, the
  14192.                          user cannot enter or reply to remote mail messages.
  14193.     c  @EDITOR_PREF    - Refers to the user's preference of L (Line editor),
  14194.                          or A (Ansi editor), or N (None).
  14195.     b  @SHOW_EXTDESC   - Y/N or TRUE/FALSE to indicate whether the user has
  14196.                          chosen to include extended (long) file descriptions
  14197.                          during any file listings.
  14198.     b  @USING_HANDLE   - Y/N or TRUE/FALSE to indicate whether this user is
  14199.  
  14200.  
  14201.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14202.  
  14203.  
  14204.  
  14205.     Page  9-8                 The MBBSEXEC Sysop Maintenance Utility Program
  14206.                                            Field Names for the USER Database
  14207.  
  14208.  
  14209.                          using a handle (alias name).  Note that if FALSE or
  14210.                          N, the @STREET1 field holds their company name (if
  14211.                          used), otherwise if TRUE or Y, its their handle.
  14212.     b  @OUTSIDE_MAIL   - Y/N or TRUE/FALSE to indicate whether this user has
  14213.                          access to "outside mail".
  14214.     s  @IA             - The user's Internet E-mail Address.  Note: this
  14215.                          string does NOT include the domain name (ie: the
  14216.                          @company.com part).  Example: sysop is valid,
  14217.                          sysop@company.com is not.
  14218.  
  14219.     Note  that  field  types  (s,n,c,b)  indicate  what  type field is being
  14220.     described by the fieldnames.  For  type 'b' (boolean), it will hold  one
  14221.     of two things - TRUE or FALSE (or Y or N, or 1 or 0).  We suggest  using
  14222.     the words TRUE or FALSE for these fields.  For example: @PRIVACY = FALSE
  14223.  
  14224.     The n (numeric) fields hold digits only.  For example: @UDRATIO = 20
  14225.  
  14226.     The c  (character) fields  hold a  single character  and must  be within
  14227.     single quotes when comparing or assigning.  For example:
  14228.  
  14229.        if(@compress == 'A') {
  14230.                             @COMPRESS = 'Z'
  14231.                             }
  14232.  
  14233.     Finally, the s (string) fields holds a string of characters and must  be
  14234.     within double quotes when comparing or assigning.  For example:
  14235.  
  14236.        if(@firstname == "Richard") {
  14237.                                    @firstname = "Rick"
  14238.                                    }
  14239.  
  14240.     Note the  1st parameter  of all  comparisons must  be a valid fieldname.
  14241.     The 2nd parameter can be a fieldname or something you choose to compare.
  14242.  
  14243.     This covers the  fieldnames for the  USER databases.   Next, we'll cover
  14244.     the FILE,  MESSAGE, RJE  and UTILIZ  databases, then  continue with  the
  14245.     syntax and construction of an MBBSEXEC program.
  14246.  
  14247.     IMPORTANT: See the section entitled "Date Fields are Special Cases"
  14248.  
  14249.  
  14250.  
  14251.  
  14252.  
  14253.  
  14254.  
  14255.  
  14256.  
  14257.  
  14258.  
  14259.  
  14260.  
  14261.  
  14262.  
  14263.  
  14264.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14265.  
  14266.  
  14267.  
  14268.     The MBBSEXEC Sysop Maintenance Utility Program                 Page  9-9
  14269.     Field Names for the MSG Database
  14270.  
  14271.  
  14272.  
  14273.     b  @DELETED        - Is this message deleted?
  14274.     c  @CONF           - Conference area (A-Z) of message
  14275.     b  @PRIVATE        - Is this a private message?
  14276.     b  @RECEIVED       - Has the message been received by addressee?
  14277.     n  @FROM           - ID of who wrote the message (-1 if from Magnum)
  14278.     n  @TO             - ID of who the message is to (-1 if for ALL)
  14279.     n  @NUM            - ID of original addresse (if CC or Forward)
  14280.     n  @TIMESREAD      - Number of times message was read
  14281.     s  @SUBJECT        - Message Subject
  14282.     s  @DATE           - Date of Message (MM/DD/YYYY)
  14283.     s  @TIME           - Time of Message (HH:MM in 24-hour format)
  14284.     s  @EXPDATE        - Expiration date of message (MM/DD/YYYY)
  14285.     b  @CC             - Is this a carbon copy?
  14286.     b  @FORWARD        - Is this a Forwarded message?
  14287.     b  @RECEIPT        - Is a receipt wanted for this message?
  14288.     b  @REPLIES        - Are their any replies to this message?
  14289.     b  @ISREPLY        - Is this message a reply to another message?
  14290.     s  @RCVDATE        - Date message was received by addressee (MM/DD/YYYY)
  14291.     s  @RCVTIME        - Time message was received by addressee (MM/DD/YYYY)
  14292.     s  @FILENAME       - Ref# or Filename (excluding pathname) of message
  14293.     n  @MSGBASE        - Indicates MessageBase of message (0-255) (will
  14294.                           always be 0 if you don't have the optional
  14295.                           extended messagebase module).
  14296.     n  @FROM_PSERNUM   - Parent Serial# of Sending BBS
  14297.     n  @TO_PSERNUM     - Parent Serial# of Target BBS
  14298.     b  @SENT           - Sent (TRUE/FALSE) [if to a different BBS]
  14299.     s  @FROM_USERNAME  - Full name (string) of originating user
  14300.     s  @TO_USERNAME    - Full name (string) of addressee
  14301.     s  @FROM_FILENAME  - Originating System's Filename (REF#)
  14302.     n  @FROM_MSGBASE   - Originating System's MsgBase (0-255)
  14303.     c  @MSGMILC        - The MILC character used for this message.
  14304.                          NOTE: This field is meant to be used when the
  14305.                                serial# of the destination system is not the
  14306.                                same as the serial# of the sending system.
  14307.     b  @ECHO           - Y/N or TRUE/FALSE to indicate that this message
  14308.                          is echoable to other systems on the mail network.
  14309.                          If not, the message is sent as store/forward only.
  14310.                          NOTE: This field is ONLY valid if the serial# of
  14311.                                the destination system is not the same as
  14312.                                the serial# of the sending system.
  14313.     n  @RECNUM         - The recorded (and not necessarily the actual)
  14314.                          record number for the current record.
  14315.  
  14316.  
  14317.  
  14318.  
  14319.  
  14320.  
  14321.  
  14322.  
  14323.  
  14324.  
  14325.  
  14326.  
  14327.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14328.  
  14329.  
  14330.  
  14331.     Page  9-10                The MBBSEXEC Sysop Maintenance Utility Program
  14332.                                            Field Names for the FILE Database
  14333.  
  14334.  
  14335.  
  14336.     b  @DELETED        - Is this file deleted?
  14337.     c  @AREA           - Area file is in (A-Z)
  14338.     b  @PRIVATE        - Is this a private (password protected) file?
  14339.     c  @UL_METHOD      - Upload method (X,C,1,Y,G,Z)
  14340.     s  @NAME           - Name of file (filename.ext)
  14341.     s  @PASSWORD       - Password of file (if @private == TRUE)
  14342.     s  @DATE           - Date file was uploaded (MM/DD/YYYY)
  14343.     s  @TIME           - Time file was uploaded (HH:MM in 24-hour format)
  14344.     s  @EXPDATE        - Expiration date of file (MM/DD/YYYY)
  14345.     s  @BRIEF          - Brief explanation of file (string of 76 chars)
  14346.     s  @DATELAST       - Date Last accessed (MM/DD/YYYY)
  14347.     n  @WHO            - ID of uploader
  14348.     b  @DESFILE        - Is a description file available?
  14349.     n  @SIZE           - Size of file
  14350.     n  @DL             - Number of downloads
  14351.     n  @FILEBASE       - Indicates FileBase (0-255) (will always be 0 if
  14352.                          you don't have the optional extended filebase
  14353.                          module).
  14354.     c  @CDROM          - If alphabetic indicates the file is on a cd-rom or
  14355.                          other drive described by a directory which is
  14356.                          external to the file database.
  14357.     n  @PATHNUM        - Indicates which path number to use in the external
  14358.                          pathname file (if @CDROM is alphabetic).
  14359.     n  @RECNUM         - The recorded (and not necessarily the actual)
  14360.                          record number for the current record.
  14361.  
  14362.     NOTE: The @CDROM and @PATHNUM variables are to be used for informational
  14363.           purposes only (unless you REALLY know what you're doing)!  Do not
  14364.           mess with these (you probably won't have a use for these two
  14365.           variables anyway).
  14366.  
  14367.     The following is an example .MEX program (MISMATCH.MEX) which checks for
  14368.     and corrects recorded vs physical record numbers:
  14369.  
  14370.            #CONFIG_FILE: mbbsinit.1
  14371.            #LOG_FILE: mismatch.log
  14372.            #DATABASE: FILE*
  14373.  
  14374.            #START
  14375.  
  14376.            if(@thisrec != @recnum) {
  14377.               log("Recorded: ",@recnum,"   Actual: ",@thisrec)
  14378.               @recnum = @thisrec
  14379.               }
  14380.  
  14381.            #STOP
  14382.  
  14383.     You can  change #DATABASE:   FILE*  to #DATABASE:   MSG*  to process the
  14384.     MsgBases instead of  the FileBases.   The * character  tells MBBSEXEC to
  14385.     process ALL  FileBases (or  ALL MsgBases)  for those  with the  Extended
  14386.     FileBase and/or Extended MsgBase modules.
  14387.  
  14388.  
  14389.  
  14390.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14391.  
  14392.  
  14393.  
  14394.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-11
  14395.     Field Names for the FILE Database
  14396.  
  14397.  
  14398.  
  14399.  
  14400.  
  14401.  
  14402.  
  14403.  
  14404.  
  14405.  
  14406.  
  14407.  
  14408.  
  14409.  
  14410.  
  14411.  
  14412.  
  14413.  
  14414.  
  14415.  
  14416.  
  14417.  
  14418.  
  14419.  
  14420.  
  14421.  
  14422.  
  14423.  
  14424.  
  14425.  
  14426.  
  14427.  
  14428.  
  14429.  
  14430.  
  14431.  
  14432.  
  14433.  
  14434.  
  14435.  
  14436.  
  14437.  
  14438.  
  14439.  
  14440.  
  14441.  
  14442.  
  14443.  
  14444.  
  14445.  
  14446.  
  14447.  
  14448.  
  14449.  
  14450.  
  14451.  
  14452.  
  14453.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14454.  
  14455.  
  14456.  
  14457.     Page  9-12                The MBBSEXEC Sysop Maintenance Utility Program
  14458.                                             Field Names for the RJE Database
  14459.  
  14460.  
  14461.  
  14462.     b  @DELETED        - Is this record deleted?
  14463.     b  @STATUS         - Is this RJE Job completed?
  14464.     s  @NAME           - RJE Jobname Magnum assigned to this Job
  14465.     s  @STARTDATE      - Date Job started (MM/DD/YYYY)
  14466.     s  @STOPDATE       - Date Job ended (MM/DD/YYYY)
  14467.     s  @PGMNAME        - Name of program started
  14468.     s  @PARMS          - Parms (arguments) passed to program
  14469.     n  @USERID         - User ID of User that started this Job
  14470.     n  @STARTTIME      - Time started (seconds from midnight of @STARTDATE)
  14471.     n  @STOPTIME       - Time stopped (seconds from midnight of @STOPDATE)
  14472.     n  @SECONDS        - Total run time of job in elapsed seconds
  14473.     n  @PRTYCLASS      - Priority class of Job when started
  14474.     n  @PRTYLEVEL      - Priority level of Job when started
  14475.     n  @PID            - Process IDentification of Job
  14476.  
  14477.     NOTES: - The keywords @STOPDATE, @STOPTIME and @SECONDS have no meaning
  14478.              if @STATUS is FALSE (job is still running).
  14479.            - The keyword @PID has no meaning if @STATUS is TRUE (job is
  14480.              completed).
  14481.  
  14482.  
  14483.  
  14484.  
  14485.  
  14486.  
  14487.  
  14488.  
  14489.  
  14490.  
  14491.  
  14492.  
  14493.  
  14494.  
  14495.  
  14496.  
  14497.  
  14498.  
  14499.  
  14500.  
  14501.  
  14502.  
  14503.  
  14504.  
  14505.  
  14506.  
  14507.  
  14508.  
  14509.  
  14510.  
  14511.  
  14512.  
  14513.  
  14514.  
  14515.  
  14516.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14517.  
  14518.  
  14519.  
  14520.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-13
  14521.     Field Names for the UTILIZ Database
  14522.  
  14523.  
  14524.  
  14525.     n  @NODE           -  Node number                   ** See NOTE #1 below
  14526.     s  @STARTDATE      -  Session started (MM/DD/YYYY)
  14527.     s  @STOPDATE       -  Session ended (MM/DD/YYYY)
  14528.     n  @STARTTIME      -  Start time in seconds from midnight
  14529.     n  @STOPTIME       -  Stop time in seconds from midnight
  14530.     n  @IDNUM          -  User idnum for this session
  14531.     n  @BAUDRATE       -  User's baud rate              ** See NOTE #2 below
  14532.     n  @LEVEL          -  User's security level
  14533.     n  @MSGS_READ      -  # msgs read this session
  14534.     n  @MSGS_WRITTEN   -  # msgs written this session
  14535.     n  @FILES_UL       -  # files uploaded this session
  14536.     n  @FILES_DL       -  # files downloaded this session
  14537.     n  @RJEJOBS        -  # RJE jobs started this session
  14538.     n  @SERIALNUM      -  Serial# of session (not parent#)
  14539.     n  @TTLTIME        -  Ttl time of session (seconds) ** See NOTE #3 below
  14540.  
  14541.  
  14542.     NOTE #1: When processing the UTILIZ database, if the @NODE value is
  14543.              a negative number, it indicates the session was terminated
  14544.              due to dropped carrier.
  14545.              If the @NODE value is negative, simply multiply by -1 to
  14546.              obtain the correct node number.
  14547.              If the @NODE value is negative (dropped carrier), information
  14548.              in the record may be worthless if the drop of carrier took
  14549.              place prior to the user actually logging on. To find out if
  14550.              the user actually logged on, the @BAUDRATE value should be
  14551.              non-zero. If the @BAUDRATE value is zero, this record is to be
  14552.              disregarded.
  14553.  
  14554.     NOTE #2: When processing the UTILIZ database, if the @BAUDRATE value is
  14555.              a negative number, it indicates the connection was established
  14556.              with modem error correction (ie: MNP, LAP, etc).
  14557.              If the @BAUDRATE value is negative, simply multiply by -1 to
  14558.              obtain the correct baudrate. If the @BAUDRATE value is zero
  14559.              (0), the entire record is to be discarded (ignored) because the
  14560.              session ended due to dropped carrier prior to the user actually
  14561.              logging on.
  14562.  
  14563.     NOTE #3: When processing the UTILIZ database, the @TTLTIME variable is
  14564.              not part of the database, but is derived by MBBSEXEC.EXE by
  14565.              taking into consideration the @STARTDATE, @STARTTIME, @STOPDATE
  14566.              and @STOPTIME parameters. @TTLTIME is expressed as the total
  14567.              number of seconds the user was online.
  14568.              @TTLTIME is a "read-only" variable. You cannot use this
  14569.              variable to assign a value to (ie: must not appear on the left
  14570.              side of an = sign).
  14571.  
  14572.     Please note that the UTILIZ.DAT database will not exist unless the
  14573.     TRACK_UTILIZATION parm in your STARTUP.x file(s) is set to Y.
  14574.  
  14575.  
  14576.  
  14577.  
  14578.  
  14579.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14580.  
  14581.  
  14582.  
  14583.     Page  9-14                The MBBSEXEC Sysop Maintenance Utility Program
  14584.                               Syntax and Construction of an MBBSEXEC program
  14585.  
  14586.  
  14587.  
  14588.     An MBBSEXEC program consists of  an ASCII text file containing  MBBSEXEC
  14589.     program statements. The physical limitations of the file are:
  14590.  
  14591.        - Each text line can be up to 120 characters in length
  14592.        - Each text line must be terminated by a CR/LF pair (automatic with
  14593.          most text editors)
  14594.        - The entire file must not exceed 64,000 bytes (file size).
  14595.  
  14596.     We've seen  an example  of a  small MBBSEXEC  program earlier, but we'll
  14597.     review the basic skeleton here again:
  14598.  
  14599.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  14600.        #LOG_FILE: MUSIC.LOG
  14601.        #DATABASE: USER
  14602.  
  14603.        #START
  14604.        .
  14605.        .
  14606.        .
  14607.        ! This is a comment
  14608.        .
  14609.        .
  14610.        .
  14611.        #STOP
  14612.  
  14613.     The  #CONFIG_FILE:     statement   tells  MBBSEXEC   the  name   of  the
  14614.     initialization file used by the BBS program (MBBS.EXE).  The  #LOG_FILE:
  14615.     statement tells MBBSEXEC  what file to  write "log" statements  to.  The
  14616.     #DATABASE:  statement  tells MBBSEXEC which  database to work  on (USER,
  14617.     MSG, FILE, RJE or UTILIZ) -  this is important because you'll also  note
  14618.     that some of the  fieldnames for the 5  databases are identical -  it is
  14619.     the #DATABASE:  statement which makes the distinction.
  14620.  
  14621.     NOTE: For those using the Magnum 'Extended MessageBase' or 'Extended
  14622.           FileBase' modules, you can specify which MessageBase or FileBase
  14623.           file to process (not to be confused with the @MSGBASE field or
  14624.           @FILEBASE fields above) by specifying the #DATABASE statement as
  14625.           follows (via examples):
  14626.  
  14627.                #DATABASE: MSG              defaults to main Message Database
  14628.                #DATABASE: MSG5             uses Message Database 5
  14629.                #DATABASE: MSG109           uses Message Database 109
  14630.                #DATABASE: MSG0             same as "#DATABASE: MSG"
  14631.                #DATABASE: FILE             same as "#DATABASE: FILE0"
  14632.                #DATABASE: FILE76           uses File Database 76
  14633.  
  14634.          Be advised that this statement is used only to determine the
  14635.          filespec of the datafile for that message or file base. If you're
  14636.          using MSG.DAT in the session directory for each of your message
  14637.          bases, then MSG and MSG110, for example, are mutually exclusive.
  14638.          If any of the FILE or MSG databases are used for more than one
  14639.          MSG or FILE database, use the @MSGBASE or @FILEBASE keywords
  14640.  
  14641.  
  14642.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14643.  
  14644.  
  14645.  
  14646.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-15
  14647.     Syntax and Construction of an MBBSEXEC program
  14648.  
  14649.  
  14650.          (fields) within your .MEX programs to narrow down which file or
  14651.          message base you wish.
  14652.  
  14653.     NOTE: For users of the Extended FileBase or MsgBase modules, you may
  14654.           also use the follwoing #DATABASE statements:
  14655.  
  14656.                   #DATABASE: FILE*
  14657.  
  14658.                   #DATABASE: MSG*
  14659.  
  14660.           When the asterisk character (*) is used as above (FILE* or MSG*),
  14661.           it tells MBBSEXEC to apply your .MEX program to EVERY FILE and MSG
  14662.           database on the system! This comes in handy for those who do not
  14663.           keep their message and/or file database in a single database file.
  14664.           MBBSEXEC will always start with your main database, then restart
  14665.           with the next, then the next, etc with this method.
  14666.  
  14667.     The  #START  and  #STOP  statements  tell  MBBSEXEC  that all statements
  14668.     appearing inbetween are to be executed (carried out) for every record in
  14669.     the database.
  14670.  
  14671.     Note  that  any  statement  starting  with  an exclamation mark (!) is a
  14672.     comment  and  will  be  ignored  by  MBBSEXEC.  Comments merely serve as
  14673.     useful notes to yourself.  The periods above (.) are not statements  but
  14674.     merely for  illustrative purposes  - these  periods (.)  would represent
  14675.     actual program statements in an MBBSEXEC program file.
  14676.  
  14677.  
  14678.  
  14679.  
  14680.  
  14681.  
  14682.  
  14683.  
  14684.  
  14685.  
  14686.  
  14687.  
  14688.  
  14689.  
  14690.  
  14691.  
  14692.  
  14693.  
  14694.  
  14695.  
  14696.  
  14697.  
  14698.  
  14699.  
  14700.  
  14701.  
  14702.  
  14703.  
  14704.  
  14705.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14706.  
  14707.  
  14708.  
  14709.     Page  9-16                The MBBSEXEC Sysop Maintenance Utility Program
  14710.                                                     The Assignment Statement
  14711.  
  14712.  
  14713.  
  14714.     The  Assignment  statement  is  the  simplest  of  all.    Basically, an
  14715.     assignment statement places a value  you supply into one of  the fields.
  14716.     For example, the statement:
  14717.  
  14718.        @memodate1 = "06/30/1990"
  14719.  
  14720.     would assign the string "06/30/1990" to the @memodate1 field of the user
  14721.     database.  You'll  probably want to  have assignment statements  execute
  14722.     only if an IF  statement is true, otherwise  it will be assigned  to all
  14723.     users.  The above  example is an example  of string assignment.   If the
  14724.     field  is  a  string  field,  then  the assignment part must be enclosed
  14725.     within double quotes.  Another example:
  14726.  
  14727.        @file_l_areas = "abchjk"
  14728.  
  14729.     An example  of an  assignment statement  for a  character field would be
  14730.     enclosed in single quotes.  For example:
  14731.  
  14732.        @compress = 'Z'
  14733.  
  14734.     An example of  an assignment statement  for a numeric  field is probably
  14735.     the simplest of the assignment statements.  For exmple:
  14736.  
  14737.        @level = 6
  14738.  
  14739.     Finally, an assignment statement for  a boolean field is either  TRUE or
  14740.     FALSE.  For example:
  14741.  
  14742.        @color = TRUE
  14743.  
  14744.     Date  fields  are  handled  differently  -  BE  SURE TO VIEW THE SECTION
  14745.     ENTITLED "DATE FIELDS ARE SPECIAL CASES"!
  14746.  
  14747.     For any assignment statement, look at the database fieldname earlier  in
  14748.     this chapter and  note if it's  a string, character,  numeric or boolean
  14749.     field and follow the assignment rules for that type of field.
  14750.  
  14751.  
  14752.  
  14753.  
  14754.  
  14755.  
  14756.  
  14757.  
  14758.  
  14759.  
  14760.  
  14761.  
  14762.  
  14763.  
  14764.  
  14765.  
  14766.  
  14767.  
  14768.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14769.  
  14770.  
  14771.  
  14772.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-17
  14773.     Comparison Statements (IF)
  14774.  
  14775.  
  14776.  
  14777.     The Comparison  (or IF)  statements are  somewhat more  comprehensive to
  14778.     grasp.  If you're experienced in the C programming language it will help
  14779.     you a great deal.
  14780.  
  14781.     Keep in  mind the  rules you've  learned for  the 4  kinds of  datatypes
  14782.     described earlier (string,  numeric, character and  boolean).  The  same
  14783.     rules  apply  for  comparisons  (ie:    strings  to  be  compared   with
  14784.     double-quoted strings,  characters to  be compared  with a single-quoted
  14785.     character,  numerics  to  be  compared  with  digits, and booleans to be
  14786.     compared with TRUE or FALSE).
  14787.  
  14788.     There  are  7  kinds  of  comparators  for  comparison  statements.    A
  14789.     comparator tells MBBSEXEC what kind of comparison you wish performed  on
  14790.     the two fields being compared.  The comparators are:
  14791.  
  14792.        ==     Test for equality
  14793.        !=     Test for inequality
  14794.        >=     Test for greater than or equal
  14795.        <=     Test for less than or equal
  14796.         >     Test for greater than
  14797.         <     Test for less than
  14798.         ~     Test if string2 is within string1 (string comparisons only)
  14799.  
  14800.     NOTE: The ~ comparator sets the @RESULTCODE (a read-only variable) to 0
  14801.           if no match, or the starting position of where within string1 the
  14802.           match was found!  For example:
  14803.  
  14804.                            If @STRING1 contained "a musical instrument",
  14805.                            then the following statement would set
  14806.                            @RESULTCODE to 3:
  14807.  
  14808.                                 if(@string1 ~ "music") {
  14809.                                    .
  14810.                                    .
  14811.                                    }
  14812.  
  14813.     The following tests for user id of 177 and deletes the user if matched.
  14814.  
  14815.        if(@id == 177) {
  14816.                       @deleted = TRUE
  14817.                       }
  14818.  
  14819.     The following example tests for all  callers whose last call to the  BBS
  14820.     was 90 days ago or more and deletes them if true.
  14821.  
  14822.        if(@lastcall < @today - 90) {
  14823.                                    @deleted = TRUE
  14824.                                    }
  14825.  
  14826.     NOTE: Nested IF statements are allowed. See "MBBSEXEC Advanced Features"
  14827.           later in this chapter.
  14828.  
  14829.  
  14830.  
  14831.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14832.  
  14833.  
  14834.  
  14835.     Page  9-18                The MBBSEXEC Sysop Maintenance Utility Program
  14836.                                                     Branch Statements (GOTO)
  14837.  
  14838.  
  14839.  
  14840.     There will be times  when you wish to  test for a certain  condition and
  14841.     skip program statements if the condition tests true.  Since MBBSEXEC  is
  14842.     a simple  programming language  without AND  and OR  operators, the GOTO
  14843.     statement can  emulate AND  and/or OR  conditions.   The GOTO  statement
  14844.     consists of  2 parts:   the  actual GOTO  statement, and  a LABEL as the
  14845.     target of a GOTO.  The syntax of a GOTO statement is:
  14846.  
  14847.        goto(labelname)
  14848.  
  14849.     The Syntax of a label is:
  14850.  
  14851.        labelname:
  14852.  
  14853.     The two things to remember are that the GOTO itself must be followed  by
  14854.     a label name enclosed within parenthesis, and the actual label name must
  14855.     appear elsewhere  within the  #START and  #STOP statements  and must end
  14856.     with the colon (:)  character.
  14857.  
  14858.     As an example, suppose you want to increase the security level of  level
  14859.     5 users to level  6 only if they've  entered 2 or more  public messages.
  14860.     The following example demonstrates this:
  14861.  
  14862.        if(@level != 5) {
  14863.                        goto(skipit)
  14864.                        }
  14865.  
  14866.        if(@publm >= 2) {
  14867.                        @level = 6
  14868.                        log("Upgraded from level 5 to 6: /",@ID)
  14869.                        log("Lastname: ",@lastname)
  14870.                        log("Firstname: ",@firstname)
  14871.                        log("# Public Msgs entered: ",@publm)
  14872.                        log("-------------------------------")
  14873.                        }
  14874.  
  14875.        skipit:
  14876.  
  14877.     In the above example, the first  IF statement tests the user level.   If
  14878.     it is not a user level of 5, then the IF condition is TRUE and takes the
  14879.     branch to the SKIPIT:  label.  We want to perform this branch because we
  14880.     want the following statements executed for only level 5 users.  If  they
  14881.     are a level 5 user, the first  IF will test out FALSE and will  not take
  14882.     the branch  - instead,  it will  fall through  to the  next IF statement
  14883.     which tests for  the number of  public messages entered.   If 2  or more
  14884.     public messages are entered, the  user's security level is changed  to 6
  14885.     and we write  a summary of  the change to  the log file.
  14886.  
  14887.     The  above  programming  statements  show  how  an  AND condition can be
  14888.     emulated by using  a couple of  IF statements and  a GOTO.   In a higher
  14889.     level language such as C, the same thing could be accomplished without a
  14890.     GOTO and with only 1 IF statement - ie:  if((@level == 5) && (@publm  >=
  14891.     2)) but since this is a  simple programming language, we must use  the 2
  14892.  
  14893.  
  14894.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14895.  
  14896.  
  14897.  
  14898.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-19
  14899.     Branch Statements (GOTO)
  14900.  
  14901.  
  14902.     IF statements in  conjunction with a  GOTO.  For  those with programming
  14903.     experience,  IF  statements  can  be  nested  in order to emulate an AND
  14904.     statement:
  14905.  
  14906.         if(@level == 5) {
  14907.            if(@publm >= 2) {
  14908.               @level = 6
  14909.               log("Upgraded from level 5 to 6: /",@ID)
  14910.               log("Lastname: ",@lastname)
  14911.               log("Firstname: ",@firstname)
  14912.               log("# Public Msgs entered: ",@publm)
  14913.               log("-------------------------------")
  14914.               }
  14915.            }
  14916.  
  14917.     The above example  (using nested IF  statements) demonstrates a  cleaner
  14918.     way of doing things, and eliminates the need for a GOTO statement.
  14919.  
  14920.     An important thing to keep in mind is the testing of a field for NUL (if
  14921.     there's anything in a field).   These can all be accomplished by  having
  14922.     the second parameter of an IF statement as 0. For example, if you wanted
  14923.     to delete all users whose memodate1 field is older than today, you would
  14924.     first need to test if the memodate1 field had a value in it:
  14925.  
  14926.        if(@memodate1 == 0) {
  14927.                            goto(skipit)
  14928.                            }
  14929.  
  14930.        if(@memodate1 < @today) {
  14931.                                @deleted = TRUE
  14932.                                }
  14933.  
  14934.        skipit:
  14935.  
  14936.     All fields pertaining to dates are handled as special cases.
  14937.  
  14938.  
  14939.  
  14940.  
  14941.  
  14942.  
  14943.  
  14944.  
  14945.  
  14946.  
  14947.  
  14948.  
  14949.  
  14950.  
  14951.  
  14952.  
  14953.  
  14954.  
  14955.  
  14956.  
  14957.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  14958.  
  14959.  
  14960.  
  14961.     Page  9-20                The MBBSEXEC Sysop Maintenance Utility Program
  14962.                                                Date Fields are Special Cases
  14963.  
  14964.  
  14965.  
  14966.     Date fields  are handled  differently for  comparisons than assignments.
  14967.     As  a  matter  of  fact,  date  fields  are  handled  as numerics during
  14968.     comparison,  and  as  strings  during  assignments.    For  example, the
  14969.     statement:
  14970.  
  14971.        if(@lastcall < @today - 90) {
  14972.                                    .
  14973.                                    .
  14974.                                    }
  14975.  
  14976.     is handled  internally by  treating the  @lastcall and  @today fields as
  14977.     numerics.    This  way,  MBBSEXEC  can  perform  numeric  arithmetic and
  14978.     comparison  by   first  converting   date  fields   to  numeric  numbers
  14979.     representing number  of days  since Jan  1, 1980.   You  needn't concern
  14980.     yourself with this, other than the fact that you need to know that dates
  14981.     are handled as numerics for comparison purposes.
  14982.  
  14983.     When assigning something to a date field, the assignment is handled as a
  14984.     double quoted string as expected:
  14985.  
  14986.        @memodate1 = "06/01/1990"
  14987.  
  14988.     The @memodate1 and @memodate2 fields can also accept the @today field +
  14989.     or - a value. For example, the following might be used to set expiration
  14990.     dates of 6 and 12 months for a subscription BBS:
  14991.  
  14992.        @memodate1 = @today + 183
  14993.        @memodate2 = @today + 366
  14994.  
  14995.     Another .MEX file might run as a daily maintenance program which checks
  14996.     these @memodate fields for expiration and act accordingly.
  14997.  
  14998.     It is important to remember the  date rules.  In other words,  you can't
  14999.     compare a date field against a quoted string, but you can compare it  to
  15000.     something  like  @today-90  and  you   can  assign  a  string  such   as
  15001.     "06/01/1990" to  a date  field (and  can use  the exception of assigning
  15002.     with the @today +/- n).
  15003.  
  15004.     REMINDER: ALL DATES ARE STORED AND ENTERED IN U.S. DATE FORMAT!! DO NOT
  15005.               USE EUROPEAN DATE FORMAT WHEN WRITING YOUR .MEX FILES!!
  15006.  
  15007.  
  15008.  
  15009.  
  15010.  
  15011.  
  15012.  
  15013.  
  15014.  
  15015.  
  15016.  
  15017.  
  15018.  
  15019.  
  15020.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15021.  
  15022.  
  15023.  
  15024.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-21
  15025.     Mathematics
  15026.  
  15027.  
  15028.  
  15029.     Finally, mathematics can be performed within MBBSEXEC program statements
  15030.     as  we've  seen  with  the  "@today  -  90" example of subtraction.  The
  15031.     mathematical operators which are supported by MBBSEXEC are:
  15032.  
  15033.        +    Addition
  15034.        -    Subtraction
  15035.        /    Division
  15036.        *    Multiplication
  15037.        %    Modulus
  15038.  
  15039.     For those  unfamiliar with  Modulus, it  simply means  "remainder".  For
  15040.     example, 5 divided by 3 (or 5/3) is 1, while 5 modulus 3 (or 5%3) is  2.
  15041.     In other words, 3  goes into 5 one  time (division) with a  remainder of
  15042.     two (modulus).
  15043.  
  15044.     You may  use arithmetic  on any  numeric field  for assignment,  or date
  15045.     field for comparison.  For example, to add 10 minutes to a user's  daily
  15046.     time would be accomplished with:
  15047.  
  15048.        @daily_time = @daily_time + 10
  15049.  
  15050.  
  15051.  
  15052.  
  15053.  
  15054.  
  15055.  
  15056.  
  15057.  
  15058.  
  15059.  
  15060.  
  15061.  
  15062.  
  15063.  
  15064.  
  15065.  
  15066.  
  15067.  
  15068.  
  15069.  
  15070.  
  15071.  
  15072.  
  15073.  
  15074.  
  15075.  
  15076.  
  15077.  
  15078.  
  15079.  
  15080.  
  15081.  
  15082.  
  15083.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15084.  
  15085.  
  15086.  
  15087.     Page  9-22                The MBBSEXEC Sysop Maintenance Utility Program
  15088.                      Processing a Single User Instead of the Entire Database
  15089.  
  15090.  
  15091.  
  15092.     Instead of looping through every user in the USER database, there may be
  15093.     times you wish to process only a single user instead.  With what  you've
  15094.     learned above,  you know  that we  can check  for a  certain user id and
  15095.     process statements only if that id matches.  If all you wanted to do was
  15096.     process a  single matching  user id,  this method  would be a tremendous
  15097.     waste of  time since  MBBSEXEC would  loop through  every record  in the
  15098.     database, only to process changes for one user.  This Section explains a
  15099.     feature built into MBBSEXEC which will accomplish just that.
  15100.  
  15101.     Single-user processing is  currently limited only  to the USER  database
  15102.     (USER.DAT and USER.KEY files), and must be the FIRST database  processed
  15103.     (won't work if you've processed FILE  or MSG database first in the  same
  15104.     .MEX file).
  15105.  
  15106.     There are 2 ways of accomplishing single-user processing.  The first way
  15107.     is to provide the user's ID number on the #START line.  For example:
  15108.  
  15109.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  15110.        #LOG_FILE: PRN
  15111.        #DATABASE: USER
  15112.  
  15113.        #START 212
  15114.        .
  15115.        .
  15116.        .
  15117.        #STOP
  15118.  
  15119.     The above would process the user with user id 212 only.
  15120.  
  15121.     The second method  is to supply  the user id  to process on  the program
  15122.     command line:
  15123.  
  15124.        MBBSEXEC  UPDT  212
  15125.  
  15126.     which would process the UPDT.MEX file for user id 212 only.  This method
  15127.     works as though you had a statement of:
  15128.  
  15129.        #START 212
  15130.  
  15131.     in your .MEX file.   Remember, single-user processing only works  on the
  15132.     very first #START statement encountered in the .MEX file, and it must be
  15133.     part of  the USER  database -  the FILE,  MSG, RJE  and UTILIZ databases
  15134.     ignore this parameter.
  15135.  
  15136.     One  great  example  of  single-user  processing would be the following:
  15137.     Suppose you  ran a  subscription BBS  and wanted  to update users who've
  15138.     subscribed to  a higher  security level  with more  capabilities on  the
  15139.     system.  Just as  an example, your .MEX  file might look something  like
  15140.     this:
  15141.  
  15142.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  15143.        #LOG_FILE: PRN
  15144.  
  15145.  
  15146.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15147.  
  15148.  
  15149.  
  15150.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-23
  15151.     Processing a Single User Instead of the Entire Database
  15152.  
  15153.  
  15154.        #DATABASE: USER
  15155.  
  15156.        #START
  15157.  
  15158.        @level = 50
  15159.        @msg_r_areas = "abcdefghijklmwxz"
  15160.        @msg_w_areas = "abcdefghijklm"
  15161.        @msg_l_areas = "abcdefghijklmz"
  15162.        @file_u_areas = "mn"
  15163.        @file_d_areas = "abcdefghijklmnz"
  15164.        @file_l_areas = "abcdefghijklmnz"
  15165.        @daily_time = 90
  15166.        @periodtype = 'w'
  15167.        @udratio = 0
  15168.  
  15169.        #STOP
  15170.  
  15171.     The above .MEX file would normally loop through the entire USER database
  15172.     and change EVERY  user to the  above criteria since  there are no  IF or
  15173.     GOTO statements in this particular file.  Assuming the above  statements
  15174.     are stored in filename  LVL50.MEX, the following invocation  of MBBSEXEC
  15175.     would in  fact, change  EVERY user  in the  USER database  to the  above
  15176.     criteria:
  15177.  
  15178.        MBBSEXEC  LVL50
  15179.  
  15180.     If the #START  statement in the  LVL50.MEX file had  a number after  it,
  15181.     only the user id matching that number would be processed.
  15182.  
  15183.     However,  the  following  invocation  of  MBBSEXEC would change only one
  15184.     user, user 321 for example:
  15185.  
  15186.        MBBSEXEC  LVL50  321
  15187.  
  15188.     Note that by supplying  a USER id on  the program command line,  it will
  15189.     override  a  hard-coded  user  id  (ie:    one  that's  part of a #START
  15190.     statement).
  15191.  
  15192.     With this crude example, you can  see the power of having separate  .MEX
  15193.     files for different security levels.  To change anyone's security  level
  15194.     at anytime, including all the fields you've associated with a particular
  15195.     security level, simply adapt the above method to your particular needs.
  15196.  
  15197.     This technique can  also be used  in conjunction with  Magnum's @E0 MILC
  15198.     command to update a user ONLINE!
  15199.  
  15200.     Because it's too  easy to accidentally  forget the user-id  parameter on
  15201.     the program line -  a mistake could cause  havoc in your user  database.
  15202.     One  safeguard  against  this  is  to  use  a  .CMD file for all of your
  15203.     single-user updates.  The .CMD file might have a name like UPDT.CMD  and
  15204.     contain the following statements:
  15205.  
  15206.        IF %1 == . GOTO SYNTAX
  15207.  
  15208.  
  15209.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15210.  
  15211.  
  15212.  
  15213.     Page  9-24                The MBBSEXEC Sysop Maintenance Utility Program
  15214.                      Processing a Single User Instead of the Entire Database
  15215.  
  15216.  
  15217.        IF %2 == . GOTO SYNTAX
  15218.        MBBSEXEC %1 %2
  15219.        GOTO DONE
  15220.        :SYNTAX
  15221.        ECHO USAGE:  UPDT  MEXFILE  USERID
  15222.        :DONE
  15223.  
  15224.     Now, instead  of running  the MBBSEXEC  program directly  to update user
  15225.     321, you'd use the UPDT command file instead:
  15226.  
  15227.        UPDT.CMD  LVL50  321
  15228.  
  15229.     which would be identical to:  MBBSEXEC  LVL50  321
  15230.  
  15231.     However, entering:
  15232.  
  15233.        MBBSEXEC  LVL50
  15234.  
  15235.     would cause complete disaster (forgot the userid), whereas:
  15236.  
  15237.        UPDT  LVL50
  15238.  
  15239.     would echo program usage to you instead of running the MBBSEXEC program.
  15240.  
  15241.  
  15242.  
  15243.  
  15244.  
  15245.  
  15246.  
  15247.  
  15248.  
  15249.  
  15250.  
  15251.  
  15252.  
  15253.  
  15254.  
  15255.  
  15256.  
  15257.  
  15258.  
  15259.  
  15260.  
  15261.  
  15262.  
  15263.  
  15264.  
  15265.  
  15266.  
  15267.  
  15268.  
  15269.  
  15270.  
  15271.  
  15272.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15273.  
  15274.  
  15275.  
  15276.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-25
  15277.     MBBSEXEC 'Simple' Summary
  15278.  
  15279.  
  15280.     You've now learned the language of MBBSEXEC.  It is a straight  forward,
  15281.     simple programming language with much  power.  The uses for MBBSEXEC are
  15282.     limited only by your imagination.  For example, you could put together a
  15283.     mailing list of all level 10 users, or a mailing list of all people in a
  15284.     certain zipcode.
  15285.  
  15286.     In  addition  to  what  you've  learned,  you  can  also  have  multiple
  15287.     "programs" in the same MBBSEXEC  program file.  For example,  to upgrade
  15288.     all  users  to  level  6  from  level  5 who've entered 2 or more public
  15289.     messages, and delete all callers who haven't called in the past 90 days,
  15290.     AND delete all  messages older than  90 days, AND  change the expiration
  15291.     date of  all files  in area  B to  "06/01/1990", the  following file  of
  15292.     MBBSEXEC statements would accomplish the task:
  15293.  
  15294.        !
  15295.        !   Update Users from level 5 to level 6
  15296.        !
  15297.  
  15298.        #CONFIG_FILE: E:\GS\MAGNUM\PGM_DIR\MBBSINIT.1
  15299.        #LOG_FILE: USER.LOG
  15300.        #DATABASE: USER
  15301.  
  15302.        #START
  15303.  
  15304.        ! Change Level 5 users to 6 if 2 or more public messages entered
  15305.  
  15306.        if (@level != 5) {
  15307.                        goto(skip)
  15308.                        }
  15309.  
  15310.        if (@publm >= 2) {
  15311.                        @level = 6
  15312.                        @daily_time = 45
  15313.                        @file_u_areas="egi"
  15314.                        log("Upgraded from level 5 to 6: /",@ID)
  15315.                        log("Lastname: ",@lastname)
  15316.                        log("Firstname: ",@firstname)
  15317.                        log("# Public Msgs entered: ",@publm)
  15318.                        log("-------------------------------")
  15319.                        }
  15320.  
  15321.        skip:
  15322.  
  15323.        if(@lastcall == 0) {
  15324.                          goto(skip_the_rest)
  15325.                          }
  15326.  
  15327.        if(@lastcall < @today - 90) {
  15328.                       log("deleting due to lack of calls in 90 days: /",@id)
  15329.                       log("Lastname: ",@lastname)
  15330.                       log("Firstname: ",@firstname)
  15331.                       log("Lastcall: ",@lastcall)
  15332.                       @deleted=true
  15333.  
  15334.  
  15335.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15336.  
  15337.  
  15338.  
  15339.     Page  9-26                The MBBSEXEC Sysop Maintenance Utility Program
  15340.                                                    MBBSEXEC 'Simple' Summary
  15341.  
  15342.  
  15343.                       log("---------------------------")
  15344.                       }
  15345.  
  15346.        skip_the_rest:
  15347.  
  15348.        #STOP
  15349.  
  15350.        !
  15351.        !----------------- Now process message database ---------------------
  15352.        !
  15353.  
  15354.        #CONFIG_FILE: E:\GS\MAGNUM\PGM_DIR\MBBSINIT.1
  15355.        #LOG_FILE: MSG.LOG
  15356.        #DATABASE: MSG
  15357.  
  15358.        #START
  15359.  
  15360.        ! skip files with existing expiration dates
  15361.  
  15362.        if (@expdate != 0) {
  15363.                          goto(skipexp)
  15364.                          }
  15365.  
  15366.        ! ---------- skip if conference area is the "file description"
  15367.        ! ---------- conference area. This area will vary from installation
  15368.        ! ---------- to installation. In our case, 'X' is our conference
  15369.        ! ---------- area for file descriptions.
  15370.  
  15371.        if (@conf == 'X') {
  15372.                          goto(skipexp)
  15373.                          }
  15374.  
  15375.        if (@date < @today-90 ) {
  15376.                                @deleted = TRUE
  15377.                                log("Deleted Message: ",@filename)
  15378.                                log("Subject: ",@subject)
  15379.                                log("--------------------")
  15380.                                }
  15381.  
  15382.        skipexp:
  15383.  
  15384.        #STOP
  15385.  
  15386.        !
  15387.        !----------------- Now process file database ---------------------
  15388.        !
  15389.  
  15390.        #CONFIG_FILE: E:\GS\MAGNUM\PGM_DIR\MBBSINIT.1
  15391.        #LOG_FILE: FILE.LOG
  15392.        #DATABASE: FILE
  15393.  
  15394.        #START
  15395.  
  15396.  
  15397.  
  15398.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15399.  
  15400.  
  15401.  
  15402.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-27
  15403.     MBBSEXEC 'Simple' Summary
  15404.  
  15405.  
  15406.        if (@area == 'B') {
  15407.                          @expdate = "06/01/1990"
  15408.                          log("Changed expiration date of: ",@name)
  15409.                          log("Description: ",@brief)
  15410.                          log("---------------------------")
  15411.                          }
  15412.  
  15413.        #STOP
  15414.  
  15415.  
  15416.  
  15417.  
  15418.  
  15419.  
  15420.  
  15421.  
  15422.  
  15423.  
  15424.  
  15425.  
  15426.  
  15427.  
  15428.  
  15429.  
  15430.  
  15431.  
  15432.  
  15433.  
  15434.  
  15435.  
  15436.  
  15437.  
  15438.  
  15439.  
  15440.  
  15441.  
  15442.  
  15443.  
  15444.  
  15445.  
  15446.  
  15447.  
  15448.  
  15449.  
  15450.  
  15451.  
  15452.  
  15453.  
  15454.  
  15455.  
  15456.  
  15457.  
  15458.  
  15459.  
  15460.  
  15461.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15462.  
  15463.  
  15464.  
  15465.     Page  9-28                The MBBSEXEC Sysop Maintenance Utility Program
  15466.                                                    MBBSEXEC 'Simple' Summary
  15467.  
  15468.  
  15469.     To  summarize,  MBBSEXEC  is  a  very  powerful,  yet simple programming
  15470.     language.  But you must remember that MBBSEXEC only performs part of the
  15471.     job in some instances.  Anytime you have a statement such as:
  15472.  
  15473.        @deleted = TRUE
  15474.  
  15475.     the actual file or message is  not really deleted - it's only  marked as
  15476.     deleted.  To really  delete the file, you'll  need to log onto  your BBS
  15477.     and go into the  SYSOP menu.  Choose  the [S]tatus of Databases  command
  15478.     which  will  perform  most  of  the  actual  deletions.    Next PACK the
  15479.     databases to finish off the deletions.   Note that the USER database  is
  15480.     not packable. NOTE: YOU MUST BE THE ONLY ONE ONLINE TO PERFORM A PACK OF
  15481.     THE DATABASES!
  15482.  
  15483.     If  you  assign  TRUE  to  @deleted  in  the  USER  database  AND you've
  15484.     configured MAGNUM to reuse deleted  ID's for new users, the  next person
  15485.     that logs on will get that deleted ID.
  15486.  
  15487.     If you  assign TRUE  to @deleted  in the  FILE database,  files will  be
  15488.     deleted whenever someone tries  to do a [L]ist  of the area the  deleted
  15489.     file(s) is in.
  15490.  
  15491.     If you assign  TRUE to @deleted  in the MSG  database, messages are  not
  15492.     deleted unless you  do a [S]tatus  of Databases command  from within the
  15493.     sysop menu, and a Pack on the database.
  15494.  
  15495.     If you assign TRUE to @deleted in the RJE database, that record is  only
  15496.     marked as deleted, not actually  deleted.  There is no  PACKING facility
  15497.     available for  the RJE  database due  to the  nature of the RJEMONIT.EXE
  15498.     daemon process requiring access to the database at any given time!
  15499.  
  15500.     In any event,  [S]tatus of Databases  and Pack commands  from within the
  15501.     Sysop menu will go ahead and perform the actual deletions.
  15502.  
  15503.     IMPORTANT: Running MBBSEXEC.EXE when your BBS is SHUT DOWN (not running)
  15504.                will result in slightly faster execution of MBBSEXEC.EXE.
  15505.  
  15506.     We hope you'll find many good  uses for MBBSEXEC, but you must  remember
  15507.     to make  a backup  of your  *.DAT and  *.KEY files  PRIOR to running any
  15508.     MBBSEXEC programs.  If  you do not have  a backup of your  databases and
  15509.     run into trouble with the MBBSEXEC program then DON'T bother calling  us
  15510.     - there's nothing we can do for you!
  15511.  
  15512.  
  15513.  
  15514.  
  15515.  
  15516.  
  15517.  
  15518.  
  15519.  
  15520.  
  15521.  
  15522.  
  15523.  
  15524.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15525.  
  15526.  
  15527.  
  15528.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-29
  15529.     MBBSEXEC Advanced Features
  15530.  
  15531.  
  15532.                           MBBSEXEC -- ADVANCED SECTION
  15533.  
  15534.     Up  until  now,  we've  introduced  MBBSEXEC.EXE  to  you  as  a  simple
  15535.     programming language.  If you're  not a programmer, what you've  learned
  15536.     until now should be just enough to get you started writing .MEX programs
  15537.     which  will  suit  your  needs.    However,  if  you  are an experienced
  15538.     programmer, preferably in the C programming language, then you'll  enjoy
  15539.     this "Advanced Features" section. Non-Programmers may choose to omit the
  15540.     remainder of this chapter, but are welcome to continue.
  15541.  
  15542.     With  the  Advanced  features  incorporated  into MBBSEXEC, you can have
  15543.     Nested IF() statements, optional ELSE statements for your IF statements,
  15544.     and WHILE() statements.  Functions  also exist to EXIT() a  .MEX program
  15545.     in progress, get INPUT() from users, and perform logging to the  console
  15546.     with  clog()  statements,  logging  to  a  binary  file  with the blog()
  15547.     statement, or logging to  a string with the  slog() statement.  You  can
  15548.     run external programs  with the SYSTEM()  command, create your  own .MEX
  15549.     functions and CALL() them,  save and restore data  which can be used  by
  15550.     MSESSION and much more!
  15551.  
  15552.     We'll start out describing the easiest statements and techniques for the
  15553.     sake  of  those  new  (or  with  little  exposure)  to  programming, and
  15554.     progressively work our way into more advanced techniques.
  15555.  
  15556.  
  15557.  
  15558.  
  15559.  
  15560.  
  15561.  
  15562.  
  15563.  
  15564.  
  15565.  
  15566.  
  15567.  
  15568.  
  15569.  
  15570.  
  15571.  
  15572.  
  15573.  
  15574.  
  15575.  
  15576.  
  15577.  
  15578.  
  15579.  
  15580.  
  15581.  
  15582.  
  15583.  
  15584.  
  15585.  
  15586.  
  15587.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15588.  
  15589.  
  15590.  
  15591.     Page  9-30                The MBBSEXEC Sysop Maintenance Utility Program
  15592.                              MBBSEXEC Advanced Features - the EXIT statement
  15593.  
  15594.  
  15595.  
  15596.     You can exit your .MEX file at anytime with the following statement:
  15597.  
  15598.        EXIT(x)
  15599.  
  15600.     where  'x'  is  the  value  to  be  assigned to the exit code upon exit.
  15601.     Whenever an EXIT(x) statement is  executed, MBBSEXEC.EXE will end.   The
  15602.     value of the  exit code (x)  can be tested  for if MBBSEXEC  was started
  15603.     from  a  .CMD  file  (using  the  ERRORLEVEL variable).  A valid EXIT(x)
  15604.     statement might look something like this:
  15605.  
  15606.        EXIT(5)
  15607.  
  15608.     NOTE:  Without  the EXIT(x) function,  MBBSEXEC.EXE always ends  with an
  15609.     exit code of 0 or 1. If it ends with 0, it means everything went ok.  If
  15610.     it ends with 1, it means it terminated due to some error condition  (the
  15611.     cause of  the error  is displayed  upon the  abnormal termination).  You
  15612.     should keep this in mind when using the EXIT(x) function.  For  example,
  15613.     you might want to use EXIT(x) where 'x'  is a value of 2 or above.   The
  15614.     valid range is 0 to 255 and is not checked by the MBBSEXEC program.  You
  15615.     can use a  @TALLYx variable in  place of the  'x' (@TALLYx is  explained
  15616.     later).
  15617.  
  15618.     The EXIT(x) function  is meant to  be used as  part of an  IF statement.
  15619.     For example,  the following  illustrates exiting  the .MEX  file at  the
  15620.     100th record:
  15621.  
  15622.     .
  15623.     .
  15624.     if(@thisrec == 100) {
  15625.                         exit(5)
  15626.                         }
  15627.     .
  15628.     .
  15629.  
  15630.     Naturally, you'll want to exit()  your .MEX program based on  some other
  15631.     meaningful  information,  such  as  finding  the  first  occurence  of a
  15632.     particular last name.  @THISREC used above is explained later.
  15633.  
  15634.  
  15635.  
  15636.  
  15637.  
  15638.  
  15639.  
  15640.  
  15641.  
  15642.  
  15643.  
  15644.  
  15645.  
  15646.  
  15647.  
  15648.  
  15649.  
  15650.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15651.  
  15652.  
  15653.  
  15654.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-31
  15655.     MBBSEXEC Advanced Features -  Special Fields in USER  database
  15656.  
  15657.  
  15658.  
  15659.                       Special Fields in the USER database
  15660.  
  15661.     Certain fieldnames  of the  USER database  area have  been designated as
  15662.     being "special".  These "special" fields  are those which hold up to  26
  15663.     characters (the letters of the alphabet).  The "special" fields are:
  15664.  
  15665.              @FILE_U_AREAS
  15666.              @FILE_D_AREAS
  15667.              @FILE_L_AREAS
  15668.              @MSG_R_AREAS
  15669.              @MSG_W_AREAS
  15670.              @MSG_L_AREAS
  15671.              @CONFERENCES
  15672.              @FREE_DL_AREAS
  15673.              @MILC_CMDS
  15674.  
  15675.     You've learned how to make simple assignments to these fields with
  15676.     statements such as:
  15677.                            @FILE_D_AREAS = "ABCFGH"
  15678.  
  15679.     With the new enhancement added to this version, you can ADD areas TO  or
  15680.     DELETE  areas  FROM  these  special  fields.   For Example, if the field
  15681.     @FILE_D_AREAS already contains "ABCFGH", and you wish to add areas I and
  15682.     J, you would accomplish it with the following statement:
  15683.  
  15684.                   @FILE_D_AREAS = "+IJ"
  15685.  
  15686.     The value of @FILE_D_AREAS would now contain "ABCFGHIJ".
  15687.  
  15688.     If  you  wish  to  delete  areas  B  and C from @FILE_D_AREAS (assume it
  15689.     currently contains "ABCFGH"), you would accomplish it with the following
  15690.     statement:
  15691.  
  15692.                   @FILE_D_AREAS = "-BC"
  15693.  
  15694.     The value of @FILE_D_AREAS would now contains "AFGH".
  15695.  
  15696.     Summarizing,  if  you  wish  to  assign  to one of these special fields,
  15697.     simply assign as you have in the  past.  However, if you wish to  add to
  15698.     the field,  simply make  the '+'  character the  very first character in
  15699.     your assignment string.  To remove  from the field, simply make the  '-'
  15700.     character the very first character in your assignment string.
  15701.  
  15702.  
  15703.  
  15704.  
  15705.  
  15706.  
  15707.  
  15708.  
  15709.  
  15710.  
  15711.  
  15712.  
  15713.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15714.  
  15715.  
  15716.  
  15717.     Page  9-32                The MBBSEXEC Sysop Maintenance Utility Program
  15718.                                      MBBSEXEC Advanced Features - #LOG_FILE:
  15719.  
  15720.  
  15721.  
  15722.                                    #LOG_FILE:
  15723.  
  15724.     If the parameter to the  #LOG_FILE:  statement is "STDOUT"  (without the
  15725.     quotes) as the name of your log file, then all output will be written to
  15726.     standard output  (the console).   When  written to  standard output, the
  15727.     record number display will be supressed, and if you run MBBSEXEC.EXE  as
  15728.     a child process of  the BBS, then the  remote user will be  able to view
  15729.     the output.  If running  MBBSEXEC.EXE as a standalone program  (not from
  15730.     the BBS), if the #LOG_FILE:  is STDOUT, then output is redirectable (ie:
  15731.     with the OS/2 ">" redirection symbol).
  15732.  
  15733.     If the filename supplied to the #LOG_FILE:  statement is appended with a
  15734.     ",A" (without the quotes) after the  filename, it will open up the  file
  15735.     for Append.  For example, the statment:
  15736.  
  15737.                                  #LOG_FILE:  USER.LOG,A
  15738.  
  15739.     will open USER.LOG as the output  file and append its output to  the end
  15740.     of  the  file.    If  the  ",A"  is  omitted,  the file specified in the
  15741.     #LOG_FILE:  statement will be deleted if it exists prior to its use.
  15742.  
  15743.  
  15744.  
  15745.  
  15746.  
  15747.  
  15748.  
  15749.  
  15750.  
  15751.  
  15752.  
  15753.  
  15754.  
  15755.  
  15756.  
  15757.  
  15758.  
  15759.  
  15760.  
  15761.  
  15762.  
  15763.  
  15764.  
  15765.  
  15766.  
  15767.  
  15768.  
  15769.  
  15770.  
  15771.  
  15772.  
  15773.  
  15774.  
  15775.  
  15776.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15777.  
  15778.  
  15779.  
  15780.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-33
  15781.     MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  15782.  
  15783.  
  15784.  
  15785.     The  log()  statement  is  the  key  to  generating Mailing Labels, Form
  15786.     Letters and Reports.  To accomplish this, you'll need to become familiar
  15787.     with the enhanced capabilities of the log() statement.
  15788.  
  15789.                       Enhanced LOG statement capabilities:
  15790.  
  15791.     The ENHANCED format of the LOG statement is:
  15792.  
  15793.               LOG(PARM1, PARM2, ... PARMn)
  15794.  
  15795.             where:
  15796.  
  15797.     The PARMx arguments  can consist of  any combination of  field variables
  15798.     relating to the current database and/or quoted strings.
  15799.  
  15800.     Examples:
  15801.  
  15802.             log("Name: ",@lastname,", ",@firstname," ",@middlename)
  15803.             log("  ID: /",@id,"   Last called on ",@lastcall)
  15804.             log("--------------")
  15805.  
  15806.     You can even print mailing labels:
  15807.  
  15808.             log(@firstname," ",@middlename," ",@lastname)
  15809.             log(@street1)
  15810.             log(@street2)
  15811.             log(@city," ",@state,", ",@zip)
  15812.             log(@country)
  15813.             log("")
  15814.  
  15815.     The above assumes 5 printable lines  per label, the  6th line being  the
  15816.     space separating one label from the next.
  15817.  
  15818.     With the  information you've  learned so  far, you  can expand  on these
  15819.     capabilities in  order to  produce form  letters.   A form  letter would
  15820.     typically consist of many log() statements contain quoted strings as the
  15821.     message body, with a few '@' variables thrown in where appropriate.
  15822.  
  15823.     Generally,  form  letters  will  be  written  to users matching specific
  15824.     criteria, skipping those who don't match.  For illustrative purposes,  a
  15825.     simple form letter  generated to all  users of a  subscription board who
  15826.     are about to expire  within the next 30  days might look something  like
  15827.     the following:
  15828.  
  15829.     #CONFIG_FILE: D:\MAGNUM\PGM_DIR\MBBSINIT.1
  15830.     #LOG_FILE: PRN
  15831.     #DATABASE: USER
  15832.  
  15833.     #START
  15834.  
  15835.     if(@memodate1 == 0) {
  15836.                         goto(skipit)
  15837.  
  15838.  
  15839.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15840.  
  15841.  
  15842.  
  15843.     Page  9-34                The MBBSEXEC Sysop Maintenance Utility Program
  15844.               MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  15845.  
  15846.  
  15847.                         }
  15848.  
  15849.     if(@today + 30 > @memodate1) {
  15850.       log("")
  15851.       log("")
  15852.       log("")
  15853.       log("")
  15854.       log("")
  15855.       log("    ",@today)
  15856.       log("    ",@firstname," ",@middlename," ",@lastname," (ID: /",@id,")")
  15857.       log("    ",@street1)
  15858.       log("    ",@street2)
  15859.       log("    ",@city," ,",@state," ",@zip)
  15860.       log("")
  15861.       log("")
  15862.       log("    Dear ",@firstname," ",@lastname)
  15863.       log("")
  15864.       log("    Our records show that your BBS subscription is about to")
  15865.       log("    expire on ",@memodate1,".")
  15866.       log("")
  15867.       log("    Don't miss out! Get uninterrupted service by renewing your")
  15868.       log("    BBS Subscription today!")
  15869.       log("")
  15870.       log("")
  15871.       log("    Sincerely,")
  15872.       log("")
  15873.       log("")
  15874.       log("")
  15875.       log("")
  15876.       log("")
  15877.       log("    John Sysop")
  15878.       log("")
  15879.       log(@\12)
  15880.       }
  15881.  
  15882.       @tally1 = @tally1 + 1
  15883.  
  15884.       skipit:
  15885.  
  15886.       if(@thisrec == @hirec) {
  15887.             log(@tally1," letters generated",@\12)
  15888.             }
  15889.  
  15890.     #STOP
  15891.  
  15892.     In the above example, please note that the @\12 parameter translates  to
  15893.     a FormFeed character (tells printer to advance to the top of next page).
  15894.     In order to send  characters to your log  file or device (ie:   printer)
  15895.     which cannot be entered by pressing  a keyboard key, you may still  send
  15896.     that character to the log by using its decimal equivalent.  The  decimal
  15897.     equivalent for FormFeed  is 12, thus  @\12 tells the  log() statement to
  15898.     send a FormFeed to the printer.  The format is the following:
  15899.  
  15900.  
  15901.  
  15902.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15903.  
  15904.  
  15905.  
  15906.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-35
  15907.     MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  15908.  
  15909.  
  15910.        @\x
  15911.  
  15912.     where 'x' is the decimal equivalent of the character you wish to send to
  15913.     the log.  This is an ideal way to send escape sequences to your  printer
  15914.     in order  to change  fonts, print  size, etc.   For  example, an  escape
  15915.     sequence of "<Esc><Ctrl-X><Ctrl-Y>Hello" would be entered as follows:
  15916.  
  15917.        log(@\27,@\24,@\25,"Hello")
  15918.  
  15919.     The following ADVANCED KEYWORDS allow you to produce reports:
  15920.  
  15921.        @LOREC   - indicates record 0 (the first record in a database)
  15922.        @HIREC   - indicates record X (the  last record in a database)
  15923.        @THISREC - indicates the current record being processed
  15924.        @TALLY0  - Tally counter number 0
  15925.        @TALLY1  - Tally counter number 1
  15926.          .
  15927.          .
  15928.        @TALLY98 - Tally counter number 98
  15929.        @TALLY99 - Tally counter number 99
  15930.  
  15931.     The @TALLYx counters can be used  to count whatever you wish, or  can be
  15932.     used for other purposes such as flags.
  15933.  
  15934.     With the introduction  of the modified/enhanced  LOG statement, you  can
  15935.     actually generate  FORM LETTERS,  and with  the introduction  of the new
  15936.     KEYWORDS above, you can generate detailed reports!
  15937.  
  15938.     Initially, upon start of processing, @LOREC  is set to 0, @HIREC is  set
  15939.     to the highest  record number, @THISREC  varies with the  current record
  15940.     number, and the @TALLYx  counters are set to  0. The @HIREC, @LOREC  and
  15941.     @THISREC variables are to be used for comparisons only, they must not be
  15942.     used as the  target of an  assignment statement.   The @TALLYx variables
  15943.     are to be used however you wish.
  15944.  
  15945.     NOTE: The @LOREC, @HIREC and @THISREC variables are typically used to
  15946.           generate report headers and summaries at the beginning and ending
  15947.           of processing. Please note that the use of these will cause an
  15948.           increase in your processing time!
  15949.  
  15950.     The following example will print  mailing labels for all level  30 users
  15951.     on the system.  When finished with the labels, it will generate a  small
  15952.     report  stating  how  many  mailing  labels  were  generated  and   what
  15953.     percentage of the users  on the system are  at level 30.   Each label is
  15954.     assumed to consist of 5 printable lines, and 1 blank line separating the
  15955.     labels.  The header and summary will each consume 1 label:
  15956.  
  15957.        #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  15958.        #LOG_FILE: LEVEL30.LOG
  15959.        #DATABASE: USER
  15960.  
  15961.        #START
  15962.  
  15963.  
  15964.  
  15965.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  15966.  
  15967.  
  15968.  
  15969.     Page  9-36                The MBBSEXEC Sysop Maintenance Utility Program
  15970.               MBBSEXEC Advanced Features - Labels/Letters/Reports - Counters
  15971.  
  15972.  
  15973.        if(@thisrec == @lorec) {
  15974.                   log("The following is a list of Level 30 Users")
  15975.                   log("")
  15976.                   log("")
  15977.                   log("")
  15978.                   log("")
  15979.                   log("")
  15980.                   }
  15981.  
  15982.                if(@level==30) {
  15983.                   log(@firstname," ",@middlename," ",@lastname)
  15984.                   log(@street1)
  15985.                   log(@street2)
  15986.                   log(@city,", ",@state," ",@zip)
  15987.                   log(@country)
  15988.                   log("")
  15989.                   @tally5 = @tally5 + 1
  15990.                   }
  15991.  
  15992.                @tally9 = @tally9 + 1
  15993.  
  15994.                if(@thisrec == @hirec) {
  15995.                   log("End of list for Level 30 users")
  15996.                   log("There were ",@tally5," users printed")
  15997.                   log(@tally9," total records processed")
  15998.                   @tally5 = @tally5 * 100
  15999.                   @tally0 = @tally5 / @tally9
  16000.                   log(@tally0,"% of the users are at Level 30")
  16001.                   log("")
  16002.                   log("")
  16003.                   }
  16004.  
  16005.                #STOP
  16006.  
  16007.  
  16008.  
  16009.  
  16010.  
  16011.  
  16012.  
  16013.  
  16014.  
  16015.  
  16016.  
  16017.  
  16018.  
  16019.  
  16020.  
  16021.  
  16022.  
  16023.  
  16024.  
  16025.  
  16026.  
  16027.  
  16028.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16029.  
  16030.  
  16031.  
  16032.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-37
  16033.     MBBSEXEC Advanced Features - Strings, Binary & Console Output
  16034.  
  16035.  
  16036.  
  16037.     Much like the @TALLYx variables available to you, there are also  string
  16038.     variables available to you:
  16039.  
  16040.        @STRING0
  16041.        @STRING1
  16042.           .
  16043.           .
  16044.        @STRING99
  16045.  
  16046.     Each of these variables is capable of holding up to 100 bytes.  You  can
  16047.     assign any other string variables to/from these @STRINGx variables.  You
  16048.     can use these variables however you please.
  16049.  
  16050.     In addition to  the enhanced LOG()  statement, an SLOG()  statement also
  16051.     exists which writes its output to a @STRING variable rather than the log
  16052.     file.  The format is:  SLOG(x,parm1,...,parmn).  It is identical to  the
  16053.     LOG() statement  except that  the first  parameter (x)  tells the SLOG()
  16054.     statement  which  @STRINGx  variable  to  write  to.    For example, the
  16055.     statement:
  16056.  
  16057.            slog(5,@firstname," ",@middlename," ",@lastname)
  16058.  
  16059.     would result  in writing  the above  parameters to  @STRING5.   When the
  16060.     statement completes,  @STRING5 might hold  a value such as "John S Doe".
  16061.     The slog() statement was necessary for this type of combination  because
  16062.     string variables do not have an append operation such as '+'.  Note that
  16063.     a CR/LF  (carriage return/linefeed)  is NOT  appended to  the end of the
  16064.     string. log() statements append a CR/LF to the output. slog() and blog()
  16065.     statements do not.
  16066.  
  16067.     If you wish to  create your own binary  (random access) file as  output,
  16068.     you  can  do  so  with  the  BLOG()  statement.    The BLOG() format is:
  16069.     BLOG(x,parm1,...,parmn).    It  is  identical  to  the writing the LOG()
  16070.     statement except that the first parameter (x) tells the BLOG() statement
  16071.     how many bytes to write.  For example, the statement:
  16072.  
  16073.            blog(50,@firstname," ",@middlename," ",@lastname)
  16074.  
  16075.     would result in writing 50 bytes to the output file (the output file  is
  16076.     the filename in the #LOG_FILE statement).  If the result is longer  than
  16077.     50 bytes, only the first 50  bytes are written.  If the  statement being
  16078.     written is shorter than x,  the difference is padded with  nulls (binary
  16079.     0's).   By using  blog() statements  instead of  log() statements, it is
  16080.     possible to  create your  own binary  (random access)  output files this
  16081.     way.   Note that  CR/LF (carriage  return/linefeed) are  NOT appended to
  16082.     blog() statements.  Only the log() statement appends a CR/LF.
  16083.  
  16084.     When opening an existing binary log  file for append mode, do not  use a
  16085.     ",A" (without quotes) after the #LOG_FILE file name.  Instead, use  ",U"
  16086.     (without quotes)  to indicate  binary update  mode.   This simply  tells
  16087.     MBBSEXEC not to write the "* * * Append * * *" string which it  normally
  16088.     does when ",A" is used.
  16089.  
  16090.  
  16091.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16092.  
  16093.  
  16094.  
  16095.     Page  9-38                The MBBSEXEC Sysop Maintenance Utility Program
  16096.                MBBSEXEC Advanced Features - Strings, Binary & Console Output
  16097.  
  16098.  
  16099.  
  16100.     When using  blog() statements,  take care  not to  use log() statements!
  16101.  
  16102.     Note that  the @\x  variable is  available for  log(), slog() and blog()
  16103.     statements.
  16104.  
  16105.     If you wish to print a  message to the console (regardless of  the value
  16106.     of the  #LOG_FILE paramater),  you can  use the  clog() statement.  It's
  16107.     operation is identical  to that of  the log() statement  except that its
  16108.     output always goes to the console, whereas the log() statement's  output
  16109.     always  goes  to  the  file  specified  in the #LOG_FILE statement.  For
  16110.     technical users, the  output of the  clog() statement is  printed to the
  16111.     console via stderr (ie: can be redirected with "2>filename").
  16112.  
  16113.  
  16114.  
  16115.  
  16116.  
  16117.  
  16118.  
  16119.  
  16120.  
  16121.  
  16122.  
  16123.  
  16124.  
  16125.  
  16126.  
  16127.  
  16128.  
  16129.  
  16130.  
  16131.  
  16132.  
  16133.  
  16134.  
  16135.  
  16136.  
  16137.  
  16138.  
  16139.  
  16140.  
  16141.  
  16142.  
  16143.  
  16144.  
  16145.  
  16146.  
  16147.  
  16148.  
  16149.  
  16150.  
  16151.  
  16152.  
  16153.  
  16154.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16155.  
  16156.  
  16157.  
  16158.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-39
  16159.     MBBSEXEC Advanced Features - the INPUT() statement
  16160.  
  16161.  
  16162.  
  16163.     Your .MEX programs are capable of interacting with the user in order  to
  16164.     receive user input.  User input can be directed to a @STRINGx or @TALLYx
  16165.     variable.  The format of the INPUT() statement is as follows:
  16166.  
  16167.        INPUT("input text",@TALLYx)      or      INPUT("input text",@STRINGx)
  16168.  
  16169.     When the MBBSEXEC.EXE program executes an input statement, it prints the
  16170.     contents of "input text" on the  console and waits for the user  to type
  16171.     their input.
  16172.  
  16173.     An example of an input() statements follow:
  16174.  
  16175.        input("What is your name => ",@string1)
  16176.        input("How old are you => ",@tally1)
  16177.  
  16178.     Input() statements might  generally be found  in .MEX files  that search
  16179.     for some criteria without  having the need to  edit the .MEX file  every
  16180.     time the  criteria changes.   For  example, to  search for  one or  more
  16181.     occurrences of a  certain last name,  the following statements  might be
  16182.     used:
  16183.  
  16184.        #START
  16185.  
  16186.        if(@thisrec == @lorec) {
  16187.           input("Lastname to Search For => ",@string1)
  16188.           }
  16189.  
  16190.        !
  16191.        ! clog("Comparing ",@\34,@lastname,@\34," and ",@\34,@string1,@\34)
  16192.        !
  16193.  
  16194.        if(@lastname == @string1) {
  16195.           clog("Name: ",@lastname,", ",@firstname," ",@middlename)
  16196.           clog("  ID: /",@id)
  16197.           clog("From: ",@city," ",@state," - ",@country)
  16198.           clog("Last Called on ",@lastcall)
  16199.           clog("- - - - - - - - - - - - - - -")
  16200.           input("Search for Next Occurence (Y/N) => ",@string2)
  16201.           if(@string2 == "N") {
  16202.              exit(0)
  16203.              }
  16204.           }
  16205.  
  16206.        #STOP
  16207.  
  16208.  
  16209.  
  16210.  
  16211.  
  16212.  
  16213.  
  16214.  
  16215.  
  16216.  
  16217.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16218.  
  16219.  
  16220.  
  16221.     Page  9-40                The MBBSEXEC Sysop Maintenance Utility Program
  16222.                           MBBSEXEC Advanced Features - the WHILE() statement
  16223.  
  16224.  
  16225.  
  16226.     Much like  the IF()  statement, the  WHILE() statement  is identical  in
  16227.     format:
  16228.  
  16229.             IF(expression) {
  16230.                .
  16231.                .
  16232.                }
  16233.  
  16234.             WHILE(expression) {
  16235.                .
  16236.                .
  16237.                }
  16238.  
  16239.     The only difference between the two is that when an IF() statement  ends
  16240.     (matching } found), the program continues with the next statement.  With
  16241.     a  WHILE()  statement,  the  WHILE()  loop  repeats  continuously  until
  16242.     (expression) becomes false.  For exmple:
  16243.  
  16244.        @tally5 = 1
  16245.        while(@tally5 != 0) {
  16246.           input("Enter a number (0 to quit) => ",@tally5)
  16247.           clog("You picked ",@tally5)
  16248.           }
  16249.        clog("Ok - the WHILE() loop is now over!")
  16250.  
  16251.     The reason the WHILE() statement  is similar is because if  (expression)
  16252.     is  TRUE,  then  the  statements  following,  enclosed  in  {  and } are
  16253.     executed.  If  (expression) is FALSE,  program execution continues  with
  16254.     the statement following  the } brace  which matches the  { brace on  the
  16255.     WHILE() line.  The difference between IF() and WHILE() when (expression)
  16256.     is  TRUE  is  that  the  WHILE()  loop repeats itself until (expression)
  16257.     becomes FALSE.  This was easily demonstrated with the example above.
  16258.  
  16259.  
  16260.  
  16261.  
  16262.  
  16263.  
  16264.  
  16265.  
  16266.  
  16267.  
  16268.  
  16269.  
  16270.  
  16271.  
  16272.  
  16273.  
  16274.  
  16275.  
  16276.  
  16277.  
  16278.  
  16279.  
  16280.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16281.  
  16282.  
  16283.  
  16284.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-41
  16285.     MBBSEXEC Advanced Features - The } ELSE { statement
  16286.  
  16287.  
  16288.  
  16289.     As mentioned earlier, IF() statements can have matching ELSE statements.
  16290.     The format of an ELSE statement is:
  16291.  
  16292.        } ELSE {
  16293.  
  16294.     all on one line.   Each ELSE matches up with  the matching { of an  IF()
  16295.     statement.    And  because  IF()  statements  can be nested, so can ELSE
  16296.     statements:
  16297.  
  16298.        if(expression) {
  16299.           .
  16300.           .
  16301.           if(expression) {
  16302.                  .
  16303.                  .
  16304.           } else {
  16305.                  .
  16306.                  .
  16307.                  }
  16308.           }
  16309.  
  16310.     With  the  introduction  of  the  ELSE  statement,  we can simplify many
  16311.     things. For example, the following statements:
  16312.  
  16313.        if(@level > 10) {
  16314.           .
  16315.           .
  16316.           goto(done)
  16317.           }
  16318.  
  16319.        .
  16320.        .
  16321.  
  16322.        done:
  16323.  
  16324.     Could be replaced with:
  16325.  
  16326.        if(@level > 10) {
  16327.           .
  16328.           .
  16329.           } else {
  16330.           .
  16331.           .
  16332.           }
  16333.  
  16334.     thus eliminating  the need  for the  GOTO statement  and its  associated
  16335.     label alltogether.
  16336.  
  16337.     NOTE: The   } ELSE {   statement can also be replaced with   ELSE   (no
  16338.           brackets). Should you desire to use ELSE without the brackets,
  16339.           MBBSEXEC.EXE will internally add the brackets for you. Whether you
  16340.           use these brackets or not is entirely up to you. Some people argue
  16341.  
  16342.  
  16343.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16344.  
  16345.  
  16346.  
  16347.     Page  9-42                The MBBSEXEC Sysop Maintenance Utility Program
  16348.                          MBBSEXEC Advanced Features - The } ELSE { statement
  16349.  
  16350.  
  16351.           that the use of brackets improves readability while others argue
  16352.           that the brackets decrease readability.
  16353.  
  16354.     Nesting levels ( { and } within other  { and } ) can be up to 200 levels
  16355.     deep.  Extreme caution must be taken when using the GOTO statement  when
  16356.     inside a { and }  pair or when branching to  another { and } pair.   For
  16357.     example, in a nested IF ...  ELSE statement, it's ok to issue a GOTO  to
  16358.     a label within the same matching { and } pair.  It's even ok to issue  a
  16359.     GOTO from within a { and }  pair to the main execution part of  the .mex
  16360.     file (ie:   not contained within  a { and  } pair).   However, if you're
  16361.     branching to a label within a { and } pair and the GOTO was issued  from
  16362.     outside that { and } pair, the results will be highly unpredictable.
  16363.  
  16364.           Example:
  16365.  
  16366.               IF(expression) {
  16367.                              .
  16368.                              .
  16369.                              if(expression) {
  16370.                                             .
  16371.                                             badlabel:
  16372.                                             .
  16373.                                             goto(ok1)
  16374.                                             .
  16375.                                             .
  16376.                                             ok1:
  16377.                                             .
  16378.                                             }
  16379.                              .
  16380.                              goto(ok2)
  16381.                              .
  16382.                       } else {
  16383.                              .
  16384.                              goto(badlabel)
  16385.                              .
  16386.                              }
  16387.  
  16388.               ok2:
  16389.  
  16390.     Note the branch to  ok1 is valid because  the label is contained  within
  16391.     the same { and } bracket pair as the goto statement.  The branch to  ok2
  16392.     is valid because the ok2 label is in the main program body (not within a
  16393.     { and } pair.   However, the branch to bad  label goes from one {  and }
  16394.     pair to another { and }  pair and therefore, the results of  this branch
  16395.     will be highly unpredictable.
  16396.  
  16397.  
  16398.  
  16399.  
  16400.  
  16401.  
  16402.  
  16403.  
  16404.  
  16405.  
  16406.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16407.  
  16408.  
  16409.  
  16410.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-43
  16411.     MBBSEXEC Advanced Features - Indirect Addressing (Indexing)
  16412.  
  16413.  
  16414.  
  16415.     @TALLYx and @STRINGx statements can  have the 'x' part of  the statement
  16416.     indirectly  addressed  (indexed)  by  another  @TALLYx  variable.    For
  16417.     example, the statements:
  16418.  
  16419.            @TALLY5 = 15
  16420.            @TALLY[5] = @TALLY[5] + 1
  16421.  
  16422.     the  first  statement  assigns  the  value  15  to  @TALLY5.  The second
  16423.     statement indirectly  references @TALLY15  by specifying  [5] instead of
  16424.     using 15  as part  of the  name.   The [5]  specifies to get which tally
  16425.     variable you're looking for from the value stored in @TALLY5.  The  same
  16426.     logic applies  when using  [x] with  @STRINGx.   For example, if @TALLY5
  16427.     holds  the  value  15,  then  @STRING[5]  is  identical  to   specifying
  16428.     @STRING15.
  16429.  
  16430.     Since  it  can  become  confusing  to  use  @TALLYx  statements for your
  16431.     indexes, you may substitute the word @INDEXx in place of @TALLYx.  Using
  16432.     the above example, the following become more readable:
  16433.  
  16434.            @INDEX5 = 15
  16435.            @TALLY[5] = @TALLY[5] + 1
  16436.  
  16437.     MBBSEXEC  internally  converts  @INDEX  to  @TALLY - using either method
  16438.     results in  an identical  result (they  both reference  the same @TALLYx
  16439.     variable).
  16440.  
  16441.     When  using  indirect  addressing,  you  can  also  use   pre-increment,
  16442.     post-increment, pre-decrement, or postdecrement.
  16443.  
  16444.     Examples of Pre-Increment:
  16445.  
  16446.             @INDEX5 = 20
  16447.             log(@TALLY[+5])
  16448.  
  16449.             is identical to:   @TALLY5 = 20
  16450.                                @TALLY5 = @TALLY5 + 1
  16451.                                log(@TALLY21)
  16452.  
  16453.         Examples of Post-Increment:
  16454.  
  16455.             @INDEX5 = 20
  16456.             log(@TALLY[5+])
  16457.  
  16458.             is identical to:   @TALLY5 = 20
  16459.                                log(@TALLY20)
  16460.                                @TALLY5 = @TALLY5 + 1
  16461.  
  16462.     Pre-Decrement  and  Post-Decrement  work  the  same way as the increment
  16463.     operation except that it subtracts 1 instead of adds 1, and the '-' sign
  16464.     is used instead of the '+' sign.
  16465.  
  16466.     You  can  also  use  a  pre-increment  or  pre-decrement operation AND a
  16467.  
  16468.  
  16469.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16470.  
  16471.  
  16472.  
  16473.     Page  9-44                The MBBSEXEC Sysop Maintenance Utility Program
  16474.                  MBBSEXEC Advanced Features - Indirect Addressing (Indexing)
  16475.  
  16476.  
  16477.     post-increment or a post-decrement operation in the same statement:
  16478.  
  16479.             @TALLY5 = 20
  16480.             log(@TALLY[+5+])
  16481.  
  16482.             is identical to:   @TALLY5 = 20
  16483.                                @TALLY5 = @TALLY5 + 1
  16484.                                log(@TALLY21)
  16485.                                @TALLY5 = @TALLY5 + 1
  16486.  
  16487.     IMPORTANT: "EQUATED" names can NOT use indirect addressing (indexing)!
  16488.  
  16489.  
  16490.  
  16491.  
  16492.  
  16493.  
  16494.  
  16495.  
  16496.  
  16497.  
  16498.  
  16499.  
  16500.  
  16501.  
  16502.  
  16503.  
  16504.  
  16505.  
  16506.  
  16507.  
  16508.  
  16509.  
  16510.  
  16511.  
  16512.  
  16513.  
  16514.  
  16515.  
  16516.  
  16517.  
  16518.  
  16519.  
  16520.  
  16521.  
  16522.  
  16523.  
  16524.  
  16525.  
  16526.  
  16527.  
  16528.  
  16529.  
  16530.  
  16531.  
  16532.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16533.  
  16534.  
  16535.  
  16536.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-45
  16537.     MBBSEXEC Advanced Features - Equating names for @TALLY/@STRING
  16538.  
  16539.  
  16540.  
  16541.     Because it can be very  frustrating using @STRINGx and @TALLYx  variable
  16542.     names, the EQUATE:  keyword has  been added.  This keyword can  redefine
  16543.     the variable names used so that you can use more meaningful names:
  16544.  
  16545.               EQUATE : USER_NAME_FIELD = @STRING10
  16546.               EQUATE : LEVEL5_COUNTER  = @TALLY42
  16547.  
  16548.     The equated name you plan on using (ie:  USER_NAME_FIELD from the  above
  16549.     example) must follow certain rules:
  16550.  
  16551.        - The name must not exceed 30 characters in length.
  16552.        - The first character must be alphabetic (A-Z) or the '@' character.
  16553.        - Valid characters in the name consist of: alpha (A-Z), digits (0-9),
  16554.          and the '_' (underscore), '.' (period),  and '@' characters.
  16555.  
  16556.     With the ability to 'equate' your  own variable name with a @STRINGx  or
  16557.     @TALLYx variable, you can have statements such as:
  16558.  
  16559.               user_name_field = @lastname
  16560.               if(@level == 5) {
  16561.                  level5_counter = level5_counter + 1
  16562.                  }
  16563.  
  16564.     which would be identical to:
  16565.  
  16566.               @string10 = @lastname
  16567.               if(@level == 5) {
  16568.                  @tally42 = @tally42 + 1
  16569.                  }
  16570.  
  16571.     Note  that  EQUATE  statements  may  appear  anyplace in your .MEX file,
  16572.     however, you  cannot use  the equated  name in  your file  if it appears
  16573.     before the equate  statement.  The  use of equated  names are to  appear
  16574.     after the equate  statement!  You  can have up  to 200 EQUATE  statments
  16575.     (100 for @TALLY0 thru @TALLY99, and 100 for @STRING0 thru @STRING99).
  16576.  
  16577.     Equated  names  can  NOT  be  indirectly  addressed  (indexed) using the
  16578.     equated  name,  but  can  be  indirectly  addressed  using @STRING[x] or
  16579.     @TALLY[x].
  16580.  
  16581.  
  16582.  
  16583.  
  16584.  
  16585.  
  16586.  
  16587.  
  16588.  
  16589.  
  16590.  
  16591.  
  16592.  
  16593.  
  16594.  
  16595.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16596.  
  16597.  
  16598.  
  16599.     Page  9-46                The MBBSEXEC Sysop Maintenance Utility Program
  16600.               MBBSEXEC Advanced Features -Writing/calling your own functions
  16601.  
  16602.  
  16603.  
  16604.     To declare a function anywhere in your .MEX file, it must start with the
  16605.     FSTART:FUNCNAME and end with the FSTOP:FUNCNAME parameter.  Examples:
  16606.  
  16607.                  .
  16608.                  .
  16609.                  FSTART:func1
  16610.                     .
  16611.                     .
  16612.                     .
  16613.                  FSTOP:func1
  16614.                  .
  16615.                  .
  16616.                  FSTART:func2
  16617.                     .
  16618.                     .
  16619.                     .
  16620.                  FSTOP:func2
  16621.                  .
  16622.                  .
  16623.  
  16624.     Function names (ie:  func1, func2, etc) can be any name you wish, up  to
  16625.     30 characters  in length.   During  normal program  execution, functions
  16626.     (program statements appearing between FSTART:funcname and FSTOP:funcname
  16627.     statements) are not executed unless explicitly called.
  16628.  
  16629.     You may declare up to 100 functions in any .MEX program (ie:  up to  100
  16630.     functions between any set of #START and #STOP statements).
  16631.  
  16632.     To call a function from within currently executing program statements:
  16633.  
  16634.                  .
  16635.                  .
  16636.                  CALL(func1)
  16637.                  .
  16638.                  .
  16639.  
  16640.     When MBBSEXEC comes across a  CALL() function, it passes control  to the
  16641.     function being called.  When the function finishes, control is  returned
  16642.     to the next statement after the  CALL() statement.  Calls can be  nested
  16643.     up to 100 levels deep.
  16644.  
  16645.     Optionally, if you have a function name in a @STRINGx variable, you  can
  16646.     use that  @STRINGx variable  as the  parameter to  the CALL()  function.
  16647.     Example:
  16648.  
  16649.                  @STRING5 = "func1"
  16650.                  .
  16651.                  .
  16652.                  CALL(@STRING5)
  16653.                  .
  16654.                  .
  16655.  
  16656.  
  16657.  
  16658.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16659.  
  16660.  
  16661.  
  16662.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-47
  16663.     MBBSEXEC Advanced Features -Writing/calling your own functions
  16664.  
  16665.  
  16666.     This  capability  can  come  in  handy  when  using  CLOG()  and INPUT()
  16667.     statements to form a menu:
  16668.  
  16669.                  @string1 = "func1"
  16670.                  @string2 = "func2"
  16671.                  @string3 = "func3"
  16672.                  @string4 = "func4"
  16673.  
  16674.                  clog("0 - Exit Program")
  16675.                  clog("1 - Do func1")
  16676.                  clog("2 - Do func2")
  16677.                  clog("3 - Do func3")
  16678.                  clog("4 - Do func4")
  16679.  
  16680.                  @tally0 = 0
  16681.  
  16682.                  while(@tally0 == 0) {
  16683.                     input("Choice (1-4) => ",@tally0)
  16684.                     if(@tally0 == 0) {
  16685.                        exit(2)
  16686.                        }
  16687.                     if(@tally0 > 4) {
  16688.                        @tally0 = 0
  16689.                        }
  16690.                     }
  16691.  
  16692.                  call(@string[0])
  16693.  
  16694.     To terminate a function early (ie:   without processing the rest of  the
  16695.     function statements), you may issue the RETURN command:
  16696.  
  16697.                  fstart:func1
  16698.                     .
  16699.                     .
  16700.                     if(expression) {
  16701.                        return
  16702.                        }
  16703.                     .
  16704.                     .
  16705.                  fstop:func1
  16706.  
  16707.     Alternately, you can set the @RESULTCODE (a read-only variable) with the
  16708.     RETURN statement when using the format:
  16709.  
  16710.                  return(x)
  16711.  
  16712.     where 'x' is a numeric value  to be placed in the @RESULTCODE  variable.
  16713.     'x' can also be a @TALLYx variable.
  16714.  
  16715.     If you  plan on  checking the  value of  the @RESULTCODE  variable after
  16716.     calling a  function, it  must be  tested immediately  after the function
  16717.     call:
  16718.  
  16719.  
  16720.  
  16721.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16722.  
  16723.  
  16724.  
  16725.     Page  9-48                The MBBSEXEC Sysop Maintenance Utility Program
  16726.               MBBSEXEC Advanced Features -Writing/calling your own functions
  16727.  
  16728.  
  16729.                  .
  16730.                  .
  16731.                  call(func1)
  16732.                  if(@resultcode == 0) {
  16733.                     .
  16734.                     .
  16735.                     } else {
  16736.                     .
  16737.                     .
  16738.                     }
  16739.                  .
  16740.                  .
  16741.  
  16742.     NOTE:  The RETURN command is to be used only within a function.
  16743.  
  16744.     IMPORTANT: The GOTO() statement, if used within a function, is to
  16745.                 be used ONLY to branch to a label contained within that
  16746.                 function!!
  16747.  
  16748.     NOTE: You can improve performance (ie: speed) of the processing of
  16749.           your .MEX files by using function declarations and function
  16750.           calls. For exmaple, the following code:
  16751.  
  16752.                     if(expression) {
  16753.                                    .
  16754.                                    .
  16755.                                    .
  16756.                                    .
  16757.                                    }
  16758.  
  16759.                  will run slower than:
  16760.  
  16761.                     if(expression) {
  16762.                        call(funca)
  16763.                        }
  16764.  
  16765.     where "funca" would contain  the same code as  is between the braces  of
  16766.     the  "if(expression)"  statement  above.    This is especially true when
  16767.     large numbers  of statements  appear between  the brackets  of the  if()
  16768.     statement.  To clarify this  further, the speed improvement comes  about
  16769.     when  the  if(expression)  statement  evaluates  to  "false".    Because
  16770.     MBBSEXEC is an interpreter, it must read (and ignore) every line of code
  16771.     after the if()  statement until it  finds its matching  brace.  However,
  16772.     with the call()  statement, it's only  one statement which  is read (and
  16773.     ignored)  in  the  case  of  the  if()  statement evaluating to "false".
  16774.  
  16775.  
  16776.  
  16777.  
  16778.  
  16779.  
  16780.  
  16781.  
  16782.  
  16783.  
  16784.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16785.  
  16786.  
  16787.  
  16788.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-49
  16789.     MBBSEXEC Advanced Features -Setting the NEXT record to Process
  16790.  
  16791.  
  16792.  
  16793.     The function SETREC(x) sets the next record number to get.  The function
  16794.     only "sets" the next record  but doesn't actually retrieve it  until the
  16795.     #STOP statement is encountered, which forces the read of the next record
  16796.     and executes the code  at the #START statement  again.  The 'x'  portion
  16797.     can be  either a  hard-coded number  or a  @TALLYx variable.   Here's an
  16798.     example of how SETREC(x) might be used:
  16799.  
  16800.         #START
  16801.  
  16802.         if(@tally0 == 0) {
  16803.            clog("Record Range: 0 to ",@hirec)
  16804.            goto(skip_firstime)
  16805.            }
  16806.  
  16807.         clog("ID: /",@id," Name: ",@firstname," ",@middlename," ",@lastname)
  16808.  
  16809.         skip_firstime:
  16810.  
  16811.         @tally0 = 1
  16812.  
  16813.         input("Record number to fetch => ",@tally1)
  16814.         setrec(@tally1)
  16815.  
  16816.         #STOP
  16817.  
  16818.  
  16819.  
  16820.  
  16821.  
  16822.  
  16823.  
  16824.  
  16825.  
  16826.  
  16827.  
  16828.  
  16829.  
  16830.  
  16831.  
  16832.  
  16833.  
  16834.  
  16835.  
  16836.  
  16837.  
  16838.  
  16839.  
  16840.  
  16841.  
  16842.  
  16843.  
  16844.  
  16845.  
  16846.  
  16847.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16848.  
  16849.  
  16850.  
  16851.     Page  9-50                The MBBSEXEC Sysop Maintenance Utility Program
  16852.                   MBBSEXEC Advanced Features - Executing an External Program
  16853.  
  16854.  
  16855.  
  16856.     You can run an external program by using the SYTEM() call:
  16857.  
  16858.            system("pgmname.exe parm1 parm2")
  16859.  
  16860.     The above example  calls PGMNAME.EXE, passing  it two arguments:   PARM1
  16861.     and PARM2.  The argument to the SYSTEM() command can be within a  quoted
  16862.     string, or can be a @STRINGx variable:
  16863.  
  16864.            @string1 = "pgmname.exe parm1 parm2"
  16865.            system(@string1)
  16866.  
  16867.     The parameter to  the SYSTEM() call  MUST include the  full program name
  16868.     including the .exe extension.   If it is  not in the current  directory,
  16869.     you  should  include  the  complete  filespec  (drive,path,filename  and
  16870.     extension:  "C:\MAGNUM\EXT_DIR\PKUNZIP2.EXE").
  16871.  
  16872.         NOTE: The SYSTEM() command sets the @RESULTCODE (a read-only
  16873.               variable). If you wish to obtain the resultcode, it should be
  16874.               checked immediately following the SYSTEM() call:
  16875.  
  16876.                    system("pgmname.exe parm1 parm2")
  16877.                    if(@resultcode == 1) {
  16878.                       exit(1)
  16879.                       }
  16880.  
  16881.     If the program cannot be found or started, the @RESULTCODE variable will
  16882.     be set to -1.  Otherwise, it will be set to the value the called program
  16883.     sets at termination.
  16884.  
  16885.  
  16886.  
  16887.  
  16888.  
  16889.  
  16890.  
  16891.  
  16892.  
  16893.  
  16894.  
  16895.  
  16896.  
  16897.  
  16898.  
  16899.  
  16900.  
  16901.  
  16902.  
  16903.  
  16904.  
  16905.  
  16906.  
  16907.  
  16908.  
  16909.  
  16910.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16911.  
  16912.  
  16913.  
  16914.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-51
  16915.     MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data
  16916.  
  16917.  
  16918.  
  16919.     Your .MEX  program can  save its  data (@TALLYx  and @STRINGx)  with the
  16920.     SAVE_DATA(filename)  command.    This  command  saves  the values of all
  16921.     @TALLYx and @STRINGx variables to the file specified by 'filename'.  The
  16922.     'filename' paramater  can be  a quoted  string or  a @STRINGx  variable.
  16923.     Valid Examples:
  16924.  
  16925.            SAVE_DATA("e:\mex1data.var")     or    SAVE_DATA(@STRING5)
  16926.  
  16927.     Once a datafile is saved, it  may no longer be needed when  your program
  16928.     finishes.  For  this reason, we've  added the command  DELETE(filename),
  16929.     which can have the format:
  16930.  
  16931.            DELETE("e:\mex1data.var")   or   DELETE(@STRING5)
  16932.  
  16933.     Your .MEX program can restore the data (@TALLYx and STRINGx)  previously
  16934.     saved  with  the  SAVE_DATA(filename)  command  by  using  the   command
  16935.     RESTORE_DATA(filename).  The 'filename' parameter can be a quoted string
  16936.     or a @STRINGx variable.  Valid Examples:
  16937.  
  16938.            RESTORE_DATA("e:\mex1data.var")     or    RESTORE_DATA(@STRING5)
  16939.  
  16940.     As  before,  when  starting  out  the  MBBSEXEC.EXE  program,  you   can
  16941.     optionally place a userid on the command line after the filename:
  16942.  
  16943.               MBBSEXEC  filename[.mex]  [userid]
  16944.  
  16945.     Now, the syntax is:
  16946.  
  16947.               MBBSEXEC  filename[.mex]  [userid]  [@datafile]
  16948.  
  16949.     If  you  plan  on  using  the  [userid]  parameter, it must be the first
  16950.     paramater  after  the  "filename[.mex]"  parameter.    The   [@datafile]
  16951.     parameter gives  the filespec  of the  datafile to  be loaded (values of
  16952.     @TALLYx  and  @STRINGx  variables)  at  program  startup.   The @ symbol
  16953.     preceeding  the  filename  is  not  part  of the filename, but merely an
  16954.     indication  to  the  MBBSEXEC.EXE  program  that  a  datafile   follows.
  16955.     Examples:
  16956.  
  16957.               MBBSEXEC  LEVEL20  1  @MEXDATA1.VAR
  16958.               MBBSEXEC  REPORT  @MEXDATA2.VAR
  16959.  
  16960.     The datafile is an ASCII text file, whose format is:
  16961.  
  16962.               @TALLY0 = 15
  16963.               @TALLY1 = 3421
  16964.               .
  16965.               .
  16966.               @TALLYn = 0
  16967.               .
  16968.               .
  16969.               @STRING0 = "This is string 0"
  16970.               @STRING1 = "String 1"
  16971.  
  16972.  
  16973.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  16974.  
  16975.  
  16976.  
  16977.     Page  9-52                The MBBSEXEC Sysop Maintenance Utility Program
  16978.                MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data
  16979.  
  16980.  
  16981.               .
  16982.               .
  16983.               @STRINGn = "String n"
  16984.  
  16985.     You need only specify the variables you wish to be initialized with  the
  16986.     data you provide.   This file  is in the  same format as  the "filename"
  16987.     specified  by  the  SAVE_DATA("filename")  and  RESTORE_DATA("filename")
  16988.     commands,  and  can  also  subsequently  be  used  at  runtime  by   the
  16989.     RESTORE_DATA("filename") command.
  16990.  
  16991.     The SAVE_DATA()  command can  take a  null parameter.   For example, the
  16992.     command SAVE_DATA("")  will save  the data  to the  file from  which the
  16993.     MBBSEXEC.EXE program  was started  with if  the @datafile  parameter was
  16994.     used at startup.  In other words, if MBBSEXEC was started with:
  16995.  
  16996.             MBBSEXEC @mexvars.tmp
  16997.  
  16998.     then  the  SAVE_DATA("")  command  will  is  equivalent  to  issuing the
  16999.     command:
  17000.  
  17001.             SAVE_DATA("mexvars.tmp")
  17002.  
  17003.     Likewise, the command RESTORE_DATA("") is equivalent to:
  17004.  
  17005.             RESTORE_DATA("mexvars.tmp")
  17006.  
  17007.     Utilizing the SAVE_DATA(),  RESTORE_DATA(), and SYSTEM()  commands, it's
  17008.     possible to cross-reference between databases.  For example, if you wish
  17009.     to  Process  the  FILE  database,  but  want  the name of the person who
  17010.     uploaded the file, the .MEX file processing the FILE database would look
  17011.     something like the following:
  17012.  
  17013.              @tally1 = @who
  17014.              save_data("findout.tmp")
  17015.              system("e:\magnum\pgm_dir\mbbsexec.exe findul @findout.tmp")
  17016.              restore_data("findout.tmp")
  17017.              clog("File ",@name, "was uploaded by ",@string1)
  17018.  
  17019.     and the .MEX file called would process the USER database as follows:
  17020.  
  17021.              if(@thisrec == @lorec) {
  17022.                    setrec(@tally1)
  17023.                 } else {
  17024.                    slog(1,@firstname," ",@middlename," ",@lastname)
  17025.                    save_data("")
  17026.                    exit(2)
  17027.               }
  17028.  
  17029.     The data saved by the SAVE_DATA()  command can be read by MSESSION  with
  17030.     the  MILC  command  @&x  which  causes  the  saved values of @TALLYx and
  17031.     @STRINGx  variables  to  be  read/mapped  into  MSESSION's  @Nx  an  @Zx
  17032.     variables.  The RESTORE_DATA() command can read a data file stored  with
  17033.     MSESSION's MILC command @$x which  will read/map MSESSION's @Nx and  @Zx
  17034.  
  17035.  
  17036.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17037.  
  17038.  
  17039.  
  17040.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-53
  17041.     MBBSEXEC Advanced Features-Save/Restore/Start/Delete Pgm Data
  17042.  
  17043.  
  17044.     variables to MBBSEXEC's @TALLYx and @STRINGx variables.  This feature of
  17045.     reading/saving/mapping  MSESSION  and  MBBSEXEC  data  allows  the   two
  17046.     programs  to  communicate  and  provides  for  an  ideal  way of passing
  17047.     information  to/from  MBBSEXEC  if  MSESSION  calls  MBBSEXEC as a child
  17048.     process (door).
  17049.  
  17050.  
  17051.  
  17052.  
  17053.  
  17054.  
  17055.  
  17056.  
  17057.  
  17058.  
  17059.  
  17060.  
  17061.  
  17062.  
  17063.  
  17064.  
  17065.  
  17066.  
  17067.  
  17068.  
  17069.  
  17070.  
  17071.  
  17072.  
  17073.  
  17074.  
  17075.  
  17076.  
  17077.  
  17078.  
  17079.  
  17080.  
  17081.  
  17082.  
  17083.  
  17084.  
  17085.  
  17086.  
  17087.  
  17088.  
  17089.  
  17090.  
  17091.  
  17092.  
  17093.  
  17094.  
  17095.  
  17096.  
  17097.  
  17098.  
  17099.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17100.  
  17101.  
  17102.  
  17103.     Page  9-54                The MBBSEXEC Sysop Maintenance Utility Program
  17104.                            MBBSEXEC Advanced Features-The EXTRACT() function
  17105.  
  17106.  
  17107.     The EXTRACT() funtion can extract  a string from within another  string.
  17108.     This function requires four (4) parameters:
  17109.  
  17110.          EXTRACT( target_string, source_string, start_position, byte_count )
  17111.  
  17112.     This function can  extract any portion  of source_string and  place that
  17113.     extracted portion into target_string.  For example:
  17114.  
  17115.          @string1 = "Hello there, my name is Joe"
  17116.          @string2 = "name"
  17117.          if(@string1~@string2) {
  17118.             extract(@string3,@string1,@resultcode,9)
  17119.             }
  17120.  
  17121.     The  above  code  sample  uses  @string3  as  target_string, @string1 as
  17122.     source_string, @resultcode as start_position, and 9 as byte_count.   The
  17123.     statement extracts from @string1 (the source_string), 9 characters  (the
  17124.     byte_count) beginning at position 17 (the start_position of where "name"
  17125.     appears within  @string1.   The resultant  target_string (@string3) will
  17126.     contain (without the quotes):  "name is J"
  17127.  
  17128.     Now for the rules:
  17129.  
  17130.       target_string:    must be either a @STRINGxx variable or a number.
  17131.                         If a number, the number represents which @STRINGxx
  17132.                         variable to use.
  17133.  
  17134.       source_string:    must be either a @STRINGxx variable or a string
  17135.                         literal (enclosed in doublequotes - ie: "hi there"),
  17136.                         or a number.  If a number, the number represents
  17137.                         which @STRINGxx variable to use.
  17138.  
  17139.       start_position:   must be one of:  a @TALLYxx variable,
  17140.                                          the @RESULTCODE variable,
  17141.                                          or a number.
  17142.  
  17143.       byte_count:       must be one of:  a @TALLYxx variable,
  17144.                                          the @RESULTCODE variable,
  17145.                                          or a number.
  17146.  
  17147.     NOTEs: - no indirect addressing is allowed within any of the EXTRACT()
  17148.              parameters!
  17149.  
  17150.            - if the value of start_position is out of bounds during runtime,
  17151.              the program will abort with an error message which states the
  17152.              contents of the variables.  Under normal operations this should
  17153.              never happen.
  17154.  
  17155.            - If the value of byte count is more than the number of bytes
  17156.              in the string from the starting position, then only the number
  17157.              of bytes left in the string will be extracted.  For example, if
  17158.              you find the word "music" in a string and want to extract the
  17159.              entire string from that word on, set the byte_count parm to 999
  17160.  
  17161.  
  17162.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17163.  
  17164.  
  17165.  
  17166.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-55
  17167.     MBBSEXEC Advanced Features-The EXTRACT() function
  17168.  
  17169.  
  17170.              or some other large number.
  17171.  
  17172.  
  17173.  
  17174.  
  17175.  
  17176.  
  17177.  
  17178.  
  17179.  
  17180.  
  17181.  
  17182.  
  17183.  
  17184.  
  17185.  
  17186.  
  17187.  
  17188.  
  17189.  
  17190.  
  17191.  
  17192.  
  17193.  
  17194.  
  17195.  
  17196.  
  17197.  
  17198.  
  17199.  
  17200.  
  17201.  
  17202.  
  17203.  
  17204.  
  17205.  
  17206.  
  17207.  
  17208.  
  17209.  
  17210.  
  17211.  
  17212.  
  17213.  
  17214.  
  17215.  
  17216.  
  17217.  
  17218.  
  17219.  
  17220.  
  17221.  
  17222.  
  17223.  
  17224.  
  17225.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17226.  
  17227.  
  17228.  
  17229.     Page  9-56                The MBBSEXEC Sysop Maintenance Utility Program
  17230.                            MBBSEXEC Advanced Features - Sample .MEX Programs
  17231.  
  17232.  
  17233.     The following  demonstrates a  practical use  for a  .MEX program  which
  17234.     searches your  USER database  based on  a lastname  which it prompts you
  17235.     for:
  17236.  
  17237.     #CONFIG_FILE: E:\MAGNUM\PGM_DIR\MBBSINIT.1
  17238.     #LOG_FILE: stdout
  17239.     #DATABASE: USER
  17240.  
  17241.     #START
  17242.  
  17243.     if(@thisrec == @lorec) {
  17244.         input("Lastname to Search For => ",@string1)
  17245.         }
  17246.  
  17247.     !
  17248.     ! log("Comparing ",@\34,@lastname,@\34," and ",@\34,@string1,@\34)
  17249.     !
  17250.  
  17251.     if(@lastname == @string1) {
  17252.          log("Name: ",@lastname,", ",@firstname," ",@middlename)
  17253.          log("  ID: /",@id)
  17254.          log("From: ",@city," ",@state," - ",@country)
  17255.          log("Last Called on ",@lastcall)
  17256.          log("- - - - - - - - - - - - - - -")
  17257.          input("Search for Next Occurence (Y/N) => ",@string2)
  17258.          if(@string2 == "N") {
  17259.               exit(5)
  17260.               }
  17261.          }
  17262.  
  17263.     #STOP
  17264.  
  17265.  
  17266.     The following demonstrates a sample .MEX programs which utilize most  of
  17267.     the  techniques  covered  in  the  advanced  section.  The purpose is to
  17268.     provide a sample of how these functions might be put together:
  17269.  
  17270.           !
  17271.           ! Sample .MEX program to provide numbers of how many users are in
  17272.           ! each security level (you need to change the @level statements to
  17273.           ! match your particular system).
  17274.           !
  17275.  
  17276.     #CONFIG_FILE: e:\magnum\pgm_dir\mbbsinit.1
  17277.     #LOG_FILE: FIND.LOG
  17278.     #DATABASE: USER
  17279.  
  17280.     #START
  17281.  
  17282.     !
  17283.     !  Equate our names with MBBSEXEC names for readability
  17284.     !
  17285.  
  17286.  
  17287.  
  17288.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17289.  
  17290.  
  17291.  
  17292.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-57
  17293.     MBBSEXEC Advanced Features - Sample .MEX Programs
  17294.  
  17295.  
  17296.     equate :  level5        = @tally1
  17297.     equate :  level6        = @tally2
  17298.     equate :  level10       = @tally3  ! Used for level 10 tally
  17299.     equate :  level15       = @tally4
  17300.     equate :  level20       = @tally5
  17301.     equate :  level30       = @tally6
  17302.     equate :  over_level_30 = @tally7
  17303.     equate :  active_users  = @tally8
  17304.     equate :  deleted_users = @tally9
  17305.     equate :  total_users   = @tally10
  17306.  
  17307.     !
  17308.     ! ---------- DETERMINE - function to determine user level
  17309.     !
  17310.  
  17311.     fstart:determine                 ! function to determine user level
  17312.        if(@level == 5) {             ! check for level 5
  17313.           level5 = level5 + 1        !  increment if true
  17314.        } else {                      ! otherwise
  17315.        if(@level == 6) {             ! check for level 6
  17316.           level6 = level6 + 1
  17317.        } else {
  17318.        if(@level == 10) {
  17319.           level10 = level10 + 1
  17320.        } else {
  17321.        if(@level == 15) {
  17322.           level15 = level15 + 1
  17323.        } else {
  17324.        if(@level == 20) {
  17325.           level20 = level20 + 1
  17326.        } else {
  17327.        if(@level == 30) {
  17328.           level30 = level30 + 1
  17329.        } else {
  17330.        if(@level > 30) {
  17331.           over_level_30 = over_level_30 + 1
  17332.        }
  17333.     fstop:determine                            ! end procedure
  17334.  
  17335.     !
  17336.     ! ------- FINISHUP - function to report results - called at last record
  17337.     !
  17338.  
  17339.     fstart:finishup
  17340.        clog(@\13@\10)
  17341.  
  17342.        clog("Level 5 Users: ",level5)          ! log level5 users
  17343.        clog("Level 6 Users: ",level6)
  17344.        clog("Level 10 Users: ",level10)
  17345.        clog("Level 15 Users: ",level15)
  17346.        clog("Level 20 Users: ",level20)
  17347.        clog("Level 30 Users: ",level30)
  17348.        clog("Users >Level30: ",over_level_30)
  17349.  
  17350.  
  17351.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17352.  
  17353.  
  17354.  
  17355.     Page  9-58                The MBBSEXEC Sysop Maintenance Utility Program
  17356.                            MBBSEXEC Advanced Features - Sample .MEX Programs
  17357.  
  17358.  
  17359.        clog("- - - - -")
  17360.        clog(" Active Users: ",active_users)
  17361.        clog("Deleted Users: ",deleted_users)
  17362.        clog("  Total Users: ",total_users)
  17363.  
  17364.        log("Level 5 Users: ",level5)
  17365.        log("Level 6 Users: ",level6)
  17366.        log("Level 10 Users: ",level10)
  17367.        log("Level 15 Users: ",level15)
  17368.        log("Level 20 Users: ",level20)
  17369.        log("Level 30 Users: ",level30)
  17370.        log("Users >Level30: ",over_level_30)
  17371.        log("- - - - -")
  17372.        log("Active Users: ",active_users)
  17373.        log("Deleted Users: ",deleted_users)
  17374.        log("  Total Users: ",total_users)
  17375.     fstop:finishup
  17376.  
  17377.     !
  17378.     ! --------- Main Processing (Main Program Body) --------
  17379.     !
  17380.  
  17381.     total_users = total_users + 1
  17382.  
  17383.     if(@deleted == FALSE) {
  17384.        call(determine)
  17385.        active_users = active_users + 1
  17386.        } else {
  17387.        deleted_users = deleted_users + 1
  17388.        }
  17389.  
  17390.     if(@thisrec == @hirec) {
  17391.        call(finishup)
  17392.        exit(5)               ! exit the program with return code of 5
  17393.        }
  17394.  
  17395.     #STOP
  17396.  
  17397.  
  17398.  
  17399.  
  17400.  
  17401.  
  17402.  
  17403.  
  17404.  
  17405.  
  17406.  
  17407.  
  17408.  
  17409.  
  17410.  
  17411.  
  17412.  
  17413.  
  17414.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17415.  
  17416.  
  17417.  
  17418.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-59
  17419.     MBBSEXEC -- Program Summary (All Sections)
  17420.  
  17421.  
  17422.  
  17423.     If you've completed this chapter from  start to finish, then you have  a
  17424.     fairly good grasp  of the endless  capabilities of the  MBBSEXEC program
  17425.     and its power.  Because MBBSEXEC  gets its input from STDIN, and  writes
  17426.     its  output  to  STDOUT  and/or  STDERR,  it  can also be run as a child
  17427.     process (door)  under the  BBS.   This gives  added functionality to the
  17428.     program.
  17429.  
  17430.     The remainder of this chapter summarizes the MBBSEXEC commands.
  17431.  
  17432.                                  General Rules
  17433.  
  17434.        - The .MEX file  must be an  ASCII text file,  created with a  text
  17435.          editor which ends every text line with a CR/LF pair.
  17436.        - No text line may exceed 120 characters.
  17437.        - No .MEX file can exceed 64,000 bytes (filesize).
  17438.        - Maximums: up to 500 Labels
  17439.                    up to 200 brace levels
  17440.                    up to 100 function declarations
  17441.                    up to 100 function call nesting (ie: similar to a stack)
  17442.        - Each { must have a matching } and vice versa.
  17443.        - GOTO restrictions: - If used within a function, the label (target)
  17444.                               must be within that function.
  17445.                             - If used outside of a function, the label
  17446.                               (target) should appear within the same
  17447.                               set of braces.
  17448.                             - Branching to a label in the main program body
  17449.                               (brace level 0) is acceptable anywhere except
  17450.                               from within a function.
  17451.  
  17452.     All .MEX programs start with:
  17453.  
  17454.        #CONFIG_FILE:          Full filespec to MBBSINIT.x
  17455.        #LOG_FILE:             Filespec or devicename to write to (ie: PRN)
  17456.        #DATABASE:             One of USER, FILE, MSG, RJE, UTILIZ
  17457.  
  17458.        #START
  17459.  
  17460.     and end with:
  17461.  
  17462.        #STOP
  17463.  
  17464.     The filename  given in  the #LOG_FILE  statement is  where all  log() or
  17465.     blog() statements are written to.  If ",A" (without the quotes)  follows
  17466.     the filename, the log  file is appended to.   If you plan  on using only
  17467.     blog() statements  and wish  to append  to the  file, use  ",U" (without
  17468.     quotes) after  the filename  instead.   If the  filename is STDOUT, then
  17469.     output will be routed to  the standard output device (console)  and this
  17470.     name should NOT be followed by ",A" or ",U".
  17471.  
  17472.     If processing the USER database,  a record number can optionally  follow
  17473.     the #START  statement.   This will  cause MBBSEXEC  to process only that
  17474.     record number, then terminate the program.
  17475.  
  17476.  
  17477.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17478.  
  17479.  
  17480.  
  17481.     Page  9-60                The MBBSEXEC Sysop Maintenance Utility Program
  17482.                                   MBBSEXEC -- Program Summary (All Sections)
  17483.  
  17484.  
  17485.  
  17486.     All .MEX executable  program statements must  appear between the  #START
  17487.     and #STOP program directives.
  17488.  
  17489.     All .MEX  executable program  statements NOT  appearing between  { and }
  17490.     (beginning and ending braces) or between FSTART and FSTOP are considered
  17491.     to be part of the MAIN PROGRAM BODY.
  17492.  
  17493.     If a syntax or other error occurs while processing your .MEX file  where
  17494.     MBBSEXEC issues a line number referencing the error, MBBSEXEC creates  a
  17495.     numbered file with an extension of .SNP (snapshot) - the line number  in
  17496.     which the error occurred will refer to the line number of the .SNP file.
  17497.     For example, if your program  is UPDATE.MEX and MBBSEXEC terminates  due
  17498.     to an  error on  line 45,  the MBBSEXEC  creates a  numbered file called
  17499.     UPDATE.SNP - line 45 of UPDATE.SNP is where the error occurred.
  17500.  
  17501.     IF() statements and WHILE() statements are of the format:
  17502.  
  17503.        IF(expression) {
  17504.                       .
  17505.                       .
  17506.                       }
  17507.  
  17508.     and
  17509.  
  17510.        WHILE(expression) {
  17511.                          .
  17512.                          .
  17513.                          }
  17514.  
  17515.     The opening brace ( { ) MUST appear on the same text line as the IF() or
  17516.     WHILE() statement itself.  The (expression) part of the IF() or  WHILE()
  17517.     statement  MUST  compare  two  values,  separated  by one of 7 available
  17518.     comparators:
  17519.  
  17520.          ==                 test for equality
  17521.          >=                 test for greater than or equal to
  17522.          <=                 test for less than or equal to
  17523.          !=                 test for not inequality
  17524.          >                  test for greater than
  17525.          <                  test for less than
  17526.          ~                  test for string2 within string1 (strings only)
  17527.  
  17528.     The format of an ELSE statement is:
  17529.  
  17530.          } ELSE {
  17531.     or
  17532.           ELSE
  17533.  
  17534.     if using braces,  they must appear  all on the  same line as  the actual
  17535.     ELSE  statement.    Every  ELSE  statement  MUST  have  a  matching IF()
  17536.     statement.
  17537.  
  17538.  
  17539.  
  17540.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17541.  
  17542.  
  17543.  
  17544.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-61
  17545.     MBBSEXEC -- Program Summary (All Sections)
  17546.  
  17547.  
  17548.     All { and } pairs  must match up (there should  be the same number of  {
  17549.     braces as } braces).
  17550.  
  17551.     Nesting ( { and }  within other { and }  ) must not exceed 200 levels of
  17552.     depth. The MAIN PROGRAM BODY is considered to be level 0.
  17553.  
  17554.     ALL DATES are stored in US  date format (MM/DD/YYYY) and must always  be
  17555.     10 characters in length.   All STRING comparisons against dates  must be
  17556.     in US date format and must always be 10 characters in length.  All  date
  17557.     string assignments  must be  in US  date format  and must  always be  10
  17558.     characters in length.
  17559.  
  17560.     The exclamation  mark (!)  denotes a  comment.   Comments are ignored by
  17561.     MBBSEXEC (stripped out  internally).  A  comment ends when  the physical
  17562.     text line holding the '!' character  ends.  The exclamation mark (!)  is
  17563.     NOT treated as a comment when:
  17564.  
  17565.           - It is immediately followed by an equal sign (!=).
  17566.           - It is enclosed within double quotes ("..!..").
  17567.           - It is immediately preceeded and followed by the single quote
  17568.             character ('!').
  17569.  
  17570.     You can EQUATE (substitute) your  own variable names for any  @TALLYx or
  17571.     @STRINGx variable.  You must EQUATE the name before you can use it.  The
  17572.     format of an EQUATE statement (via examples) are:
  17573.  
  17574.        EQUATE : MY_NAME   = @STRING15
  17575.        EQUATE : TTL_CALLS = @TALLY9
  17576.  
  17577.     The names you  use in your  EQUATEs must not  exceed 30 characters,  and
  17578.     must not contain any characters  other than numeric (0-9), alpha  (A-Z),
  17579.     and the '_', '.'  and '@' characters.   The first character of  the name
  17580.     must be alpha.
  17581.  
  17582.     You  can  write  your  own  functions  by  beginning  your function with
  17583.     FSTART:funcname and ending with FSTOP:funcname. Example:
  17584.  
  17585.          FSTART:print_summary
  17586.            .
  17587.            .
  17588.            .
  17589.          FSTOP:print_summary
  17590.  
  17591.     Program statements appearing within FSTART and FSTOP are never  executed
  17592.     unless explicitly called with the CALL(funcname) parameter.
  17593.  
  17594.                                    Functions
  17595.  
  17596.     CALL(funcname) - Calls a function declared with FSTART/FSTOP. If
  17597.                      the called function issues a RETURN(x) statement,
  17598.                      the value of @RESULTCODE is set and should be
  17599.                      checked immediately after the call if you wish
  17600.                      to obtain the value:
  17601.  
  17602.  
  17603.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17604.  
  17605.  
  17606.  
  17607.     Page  9-62                The MBBSEXEC Sysop Maintenance Utility Program
  17608.                                   MBBSEXEC -- Program Summary (All Sections)
  17609.  
  17610.  
  17611.  
  17612.                           CALL(print_summary)
  17613.                           IF(@resultcode != 0) {
  17614.                                                .
  17615.                                                }
  17616.  
  17617.     BLOG() - Logs (writes) a fixed length record to the #LOG_FILE file.
  17618.              FORMAT:  BLOG(length,parm1[,...parmn])
  17619.                  where 'length' indicates how many bytes to write. If
  17620.                  the total is longer than 'length', it is truncated to
  17621.                  'length'. If shorter than 'length', it is padded with
  17622.                  nulls (binary zeros).
  17623.  
  17624.     CLOG() - Logs (displays) to the console (via STDERR).
  17625.              FORMAT:  CLOG(parm1[,...parmn])
  17626.  
  17627.      LOG() - Logs (writes) a variable length record to the #LOG_FILE file.
  17628.              FORMAT:   LOG(parm1[,...parmn])
  17629.  
  17630.     SLOG() - Logs (writes) a variable length record to a @STRINGx variable.
  17631.              FORMAT:   LOG(x,parm1[,...parmn])
  17632.                  where 'x' indicates which @STRINGx variable to write to.
  17633.  
  17634.     IF() {     - Covered above under 'General Rules'.
  17635.     } ELSE {   - Covered above under 'General Rules'.
  17636.     WHILE() {  - Covered above under 'General Rules'.
  17637.  
  17638.     GOTO(label) - Branch to 'label'. 'label' may appear anywhere in the
  17639.                   file and must not exceed 30 characters. If branching to
  17640.                   'label' from within nested { and } pairs, or branching
  17641.                   to 'label' to within a different { and } pair, the results
  17642.                   will be unpredictable. General rules are:
  17643.  
  17644.                   Branch to level 0 from anywahere is always acceptable
  17645.                   unless the GOTO is issued from within a function (within
  17646.                   FSTART and FSTOP statements).
  17647.  
  17648.                   Branch from level 0 or from within a { and } pair to a
  17649.                   different { and } pair has unpredictable results!
  17650.  
  17651.     LABEL: - Identifies the target of a GOTO statement. LABEL must not
  17652.              exceed 30 characters and must be followed by a colon (:).
  17653.              Up to 500 labels are allowed per .MEX file.
  17654.  
  17655.     EXIT(resultcode) - Causes MBBSEXEC.EXE to end, returning control to the
  17656.                        calling program (or .CMD file). 'resultcode' is the
  17657.                        exit code the program will end with (can be checked
  17658.                        against the ERRORLEVEL command if in a .CMD file).
  17659.                        resultcode should range from 2 to 255. Although
  17660.                        a resultcode of 0 or 1 is acceptible, MBBSEXEC.EXE
  17661.                        normally ends with a 0 or 1 anyway and thus, codes
  17662.                        of 0 or 1 should be avoided.
  17663.  
  17664.  
  17665.  
  17666.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17667.  
  17668.  
  17669.  
  17670.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-63
  17671.     MBBSEXEC -- Program Summary (All Sections)
  17672.  
  17673.  
  17674.     INPUT("input text",@STRINGx) - Displays "input text" and prompts the
  17675.                                    user to enter something. User input is
  17676.                                    stored in variable @STRINGx. Input is
  17677.                                    obtained via STDIN, and can thus be
  17678.                                    redirected if desired.
  17679.  
  17680.     INPUT("input text",@TALLYx) -  Displays "input text" and prompts the
  17681.                                    user to enter something. User input is
  17682.                                    stored in variable @TALLYx. Input is
  17683.                                    obtained via STDIN, and can thus be
  17684.                                    redirected if desired. If an invalid
  17685.                                    number is entered (ie: non-digits), the
  17686.                                    result in @TALLYx will be 0 (zero).
  17687.  
  17688.     RETURN(x) - For function use only. Terminates a currently-executing
  17689.                 function. Sets the value of @RESULTCODE to value 'x'.
  17690.                 'x' can be numeric digits or a @TALLYx variable. The
  17691.                 alternate form of of RETURN(x) is simply RETURN wihout
  17692.                 parens which simply terminates the currently-executing
  17693.                 function but leaves the @RESULTCODE unaltered.
  17694.  
  17695.     SYSTEM("pgmname.exe parms") - Executes an external program. The
  17696.                                   parameter can be a quoted string or
  17697.                                   a @STRINGx variable containing the
  17698.                                   information. The @RESULTCODE variable
  17699.                                   is set after the external program
  17700.                                   finishes and should be checked immediately
  17701.                                   after the SYSTEM() call if you wish to
  17702.                                   obtain the result:
  17703.  
  17704.                                       SYSTEM(@STRING1)
  17705.                                       IF(@RESULTCODE > 0) {
  17706.                                                           .
  17707.                                                           }
  17708.  
  17709.                                   The @RESULTCODE will be -1 if the program
  17710.                                   could not be run (or found).
  17711.  
  17712.     SETREC(x) - Sets the record number of the NEXT record to read (will be
  17713.                 read/processed when the #STOP statement is found). 'x' can
  17714.                 be a number or a @TALLYx variable. The value of 'x' must
  17715.                 fall within 0 and the value of @HIREC.
  17716.  
  17717.     SAVE_DATA("filename") - Saves the values of the 100 @TALLYx and 100
  17718.                             @STRINGx variables to "filename". "filename" can
  17719.                             be in quoted strings or in a @STRINGx variable.
  17720.  
  17721.     RESTORE_DATA("filename") - Restores the values of the @TALLYx and
  17722.                                @STRINGx variables from "filename".
  17723.                                "filename" can be in quoted strings or in a
  17724.                                @STRINGx variable.
  17725.  
  17726.     DELETE("filename") - Deletes "filename" from disk. Filename can be in
  17727.  
  17728.  
  17729.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17730.  
  17731.  
  17732.  
  17733.     Page  9-64                The MBBSEXEC Sysop Maintenance Utility Program
  17734.                                   MBBSEXEC -- Program Summary (All Sections)
  17735.  
  17736.  
  17737.                          quoted strings or in a @STRINGx variable. If a
  17738.                          complete filespec (drive,path,filname.ext) is not
  17739.                          given, the current directory will be assumed.
  17740.  
  17741.     SNAP("filename") - Writes a snapshot of your .MEX program statements to
  17742.                        "filename".
  17743.  
  17744.     EXTRACT( target_string, source_string, start_position, byte_count )
  17745.                 - EXTRACTs a substring from source_string into target_string
  17746.                   starting at start_position for a total of byte_count.
  17747.  
  17748.                               READ-ONLY VARIABLES:
  17749.  
  17750.     @TODAY      - Holds current date.
  17751.     @THISREC    - Holds current record number.
  17752.     @LOREC      - Holds lowest record number - Always 0.
  17753.     @HIREC      - Holds highest record number.
  17754.     @RESULTCODE - Holds result of LAST call to RETURN(x) or SYSTEM(filename)
  17755.                   or string compare ( ~ ) functions.
  17756.  
  17757.                           USER (PROGRAMMER) VARIABLES:
  17758.  
  17759.     @TALLYx  - Holds numeric data. There are 100 tally variables available
  17760.                named @TALLY0 to @TALLY99.
  17761.  
  17762.     @STRINGx - Holds string data. There are 100 string variables available
  17763.                named @STRING0 to @STRING99.
  17764.  
  17765.     @TALLY[x] - Indirectly addresses a tally variable. The tally variable
  17766.                 being indirectly addressed is based on the value of @TALLYx.
  17767.  
  17768.     @STRING[x] -Indirectly addresses a string variable. The string variable
  17769.                 being indirectly addressed is based on the value of @TALLYx.
  17770.  
  17771.         For both @STRING[x] and @TALLY[x] indirect addressing,  the [x]
  17772.         portion can use pre-increment or post-increment ([+x] or [x+]).
  17773.         It can also use pre-decrement or post-decrement ([-x] or [x-]).
  17774.         Optionally,  a  combination of pre/post-increment/decrement can
  17775.         be used ([+x+] or [-x-] or [+x-] or [-x+]).
  17776.         Refer to section on "Indirect Addressing" for more information.
  17777.  
  17778.     You may use the word @INDEX in place of @TALLY (they are interchangeable
  17779.     and refer to the same thing).  @INDEX is internally converted to  @TALLY
  17780.     by MBBSEXEC.
  17781.  
  17782.                         SPECIAL FIELDS IN USER DATABASE
  17783.  
  17784.     The following fields of the USER database are "special":
  17785.  
  17786.          @FILE_U_AREAS   @FILE_D_AREAS   @FILE_L_AREAS
  17787.          @MSG_R_AREAS    @MSG_W_AREAS    @MSG_L_AREAS
  17788.          @CONFERENCES    @FREE_DL_AREAS  @MILC_CMDS
  17789.  
  17790.  
  17791.  
  17792.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17793.  
  17794.  
  17795.  
  17796.     The MBBSEXEC Sysop Maintenance Utility Program                Page  9-65
  17797.     MBBSEXEC -- Program Summary (All Sections)
  17798.  
  17799.  
  17800.     These fields hold up to 26  areas (A-Z) each.  Rather than  assigning to
  17801.     these  fields  (overwriting  what's  already  there), you can optionally
  17802.     append or delete areas from these fields.  Example:
  17803.  
  17804.          @FILE_D_AREAS = "+IM"    adds I and M as areas to @FILE_D_AREAS
  17805.          @MSG_R_AREAS  = "-SK"    deletes S and K as areas to @MSG_R_AREAS
  17806.  
  17807.     ---
  17808.                                STARTING MBBSEXEC:
  17809.  
  17810.     MBBSEXEC  filename[.mex]  [userid]  [@datafile]
  17811.  
  17812.     If  you  plan  on  using  the  [userid]  parameter, it must be the first
  17813.     paramater after the "filename[.mex]" parameter and must consist of  only
  17814.     digits.  The [@datafile] parameter gives the filespec of the datafile to
  17815.     be loaded (values of @TALLYx and @STRINGx variables) at program startup.
  17816.     The @ symbol preceeding  the filename is not  part of the filename,  but
  17817.     merely  an  indication  to  the  MBBSEXEC.EXE  program  that  a datafile
  17818.     follows. Examples:
  17819.  
  17820.        MBBSEXEC  filename
  17821.        MBBSEXEC  filename  320
  17822.        MBBSEXEC  filename  @mexdata.var
  17823.        MBBSEXEC  filename  320  @mexdata.var
  17824.  
  17825.  
  17826.  
  17827.  
  17828.  
  17829.  
  17830.  
  17831.  
  17832.  
  17833.  
  17834.  
  17835.  
  17836.  
  17837.  
  17838.  
  17839.  
  17840.  
  17841.  
  17842.  
  17843.  
  17844.  
  17845.  
  17846.  
  17847.  
  17848.  
  17849.  
  17850.  
  17851.  
  17852.  
  17853.  
  17854.  
  17855.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17856.  
  17857.  
  17858.  
  17859.  
  17860.  
  17861.  
  17862.  
  17863.  
  17864.  
  17865.  
  17866.  
  17867.  
  17868.  
  17869.  
  17870.  
  17871.  
  17872.  
  17873.  
  17874.  
  17875.  
  17876.  
  17877.  
  17878.  
  17879.  
  17880.  
  17881.  
  17882.  
  17883.  
  17884.  
  17885.  
  17886.  
  17887.  
  17888.                          This Page Intentionally Blank
  17889.  
  17890.  
  17891.  
  17892.     Magnum Utility Programs                                       Page  10-1
  17893.     LAN (Network Utils): STOPMBBS.EXE, STOPRJE.EXE, KILLPROC.EXE
  17894.  
  17895.  
  17896.     (pgm_dir)
  17897.     The Magnum utility programs STOPMBBS.EXE and STOPRJE.EXE are mainly  for
  17898.     those users of Magnum on LAN systems.  However, you may benefit from the
  17899.     use of  these programs  even if  you're running  a single-node  BBS on a
  17900.     single computer.
  17901.  
  17902.                                   STOPMBBS.EXE
  17903.  
  17904.     CAUTION:  This program will cause instant termination of ALL sessions,
  17905.               on ALL machines attached to your LAN and without warning to
  17906.               online users! The intent of this program is to keep users
  17907.               offline while a new version of the software is being installed
  17908.               or vast changes are being made by the Sysop.
  17909.  
  17910.     For Instructions on program use, execute STOPMBBS.EXE without parms.  It
  17911.     is  advisable  that  ONLY  the  system  administrator  (for LAN users of
  17912.     Magnum) have a copy of this program.
  17913.  
  17914.  
  17915.                                   STOPRJE.EXE
  17916.  
  17917.     Because the RJEMONIT.EXE program is a daemon process, there's no way to
  17918.     stop it (once its started) short of a system reboot. The STOPRJE.EXE
  17919.     utility program, however, will terminate actively running RJEMONIT.EXE
  17920.     programs on ALL machines.
  17921.  
  17922.     For Instructions on program use, execute STOPRJE.EXE without parms.   It
  17923.     is  advisable  that  ONLY  the  system  administrator  (for LAN users of
  17924.     Magnum) have a copy of this program.
  17925.  
  17926.                                   KILLPROC.EXE
  17927.  
  17928.     Magnum calls  this program  internally, but  you can  benefit from  this
  17929.     program for killing other programs on your system if you know their  PID
  17930.     (Process Identification Numbers).
  17931.  
  17932.     For Instructions on program use, execute KILLPROC.EXE without parms.
  17933.  
  17934.  
  17935.  
  17936.  
  17937.  
  17938.  
  17939.  
  17940.  
  17941.  
  17942.  
  17943.  
  17944.  
  17945.  
  17946.  
  17947.  
  17948.  
  17949.  
  17950.  
  17951.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  17952.  
  17953.  
  17954.  
  17955.     Page  10-2                                       Magnum Utility Programs
  17956.                      MAGFUTIL.EXE (A Very Powerful File Maintenance Utility)
  17957.  
  17958.  
  17959.     (pgm_dir)
  17960.     Magnum  version  8.xx  introduced  the  automatic  long description from
  17961.     compressed files containing the  member 'file_id.diz'.  This  capability
  17962.     is invoked  only if  the file  was 'uploaded',  but not  if the file was
  17963.     added via the sysop utilities of the sysop menu, and not if it was added
  17964.     via MAGFILE.EXE (which also adds files from MAGDRIVE.EXE).  MAGFUTIL.EXE
  17965.     will go  through all  of your  files in  all of  your file databases and
  17966.     check for 'file_id.diz'  within ZIP'd files,  and, if it  finds it, will
  17967.     use that for  the long description.   The Syntax  of the program  can be
  17968.     read  by   running  the   program  with   no  command-line   parms  (ie:
  17969.     MAGFUTIL.EXE).    Run  it  for  each  MBBSINIT.n file which has a unique
  17970.     SESSION DIRectory (most BBS's have identical SESSION DIRectories for all
  17971.     of their MBBSINIT.n files).
  17972.  
  17973.     In addition to  creating long file  descriptions, there are  a number of
  17974.     other functions available in  this program; if you  execute MAGFUTIL.EXE
  17975.     without  any  command-line  parms,  the  following  screen  of  info and
  17976.     instructions will appear:
  17977.  
  17978.      Syntax:  MAGFUTIL  [d:][path]mbbsinit.n  -options
  17979.      Where options are:
  17980.         -z create long descriptions from zipped files containing file_id.diz
  17981.         -d delete expired files
  17982.         -c check for files on disk, if they don't exist, delete records
  17983.         -s size check: update records if files on disk are of different size
  17984.         -t date/time check-updt records w/ actual date/time of files on disk
  17985.         -a sort, ascending chronological order (recommended with -t option)
  17986.         -r report only (no actions/updates) to MAGFUTIL.RPT (in pgm_dir)
  17987.      NOTEs: No spaces within options!
  17988.             z option will take a LONG time to execute.
  17989.             ALL files in all FileBases will be processed.
  17990.             r option reports (only) on selected options.
  17991.             Log of actions/updates written to MAGFUTIL.LOG (in pgm_dir)
  17992.      Examples:
  17993.            magfutil  mbbsinit.1  -dc
  17994.            magfutil  d:\magnum\pgm_dir\\mbbsinit.1  -z
  17995.            magfutil  mbbsinit.1  -dcz
  17996.  
  17997.     *** NOTE: It is HIGHLY recommended that you use the -r option FIRST
  17998.               (with any selected options you may choose) PRIOR to actually
  17999.               performing the functions.  The -r option will generate a
  18000.               report to MAGFUTIL.RPT (in your pgm_dir) which will show you
  18001.               what actions would have been taken had you not specified the
  18002.               -r option.  This is important information to know and can save
  18003.               you from having MAGFUTIL delete your files due to any
  18004.               miscalculations on your part.
  18005.               Without the -r option, the only other security measure
  18006.               available to you is to back up your ENTIRE system (including
  18007.               all downloadable files)!  While -r is no substitute for a
  18008.               backup, it can help you spot potential disasters!
  18009.               The -r function deactivates the functionality of any other
  18010.               selecteed options (except for the sort option), but reports on
  18011.               what these options would have done instead of performing them.
  18012.  
  18013.  
  18014.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18015.  
  18016.  
  18017.  
  18018.     Magnum Utility Programs                                       Page  10-3
  18019.     MAGFUTIL.EXE (A Very Powerful File Maintenance Utility)
  18020.  
  18021.  
  18022.  
  18023.     WARNING: This program DOES NOT observe remapping (ie: the presence of
  18024.              REMAPDIR.x file(s). Refer to remapping directories in chapt 13.
  18025.  
  18026.     IMPORTANT: - The -a option (sort) will handle a maximum of 32,000
  18027.                  records per database file.
  18028.  
  18029.                - MAGFUTIL does NOT observe remapping!!  Run this program
  18030.                  only on the server machine (the machine the BBS is running
  18031.                  on) if applicable.  If the server is using remapping, do
  18032.                  not run this program!
  18033.  
  18034.  
  18035.  
  18036.  
  18037.  
  18038.  
  18039.  
  18040.  
  18041.  
  18042.  
  18043.  
  18044.  
  18045.  
  18046.  
  18047.  
  18048.  
  18049.  
  18050.  
  18051.  
  18052.  
  18053.  
  18054.  
  18055.  
  18056.  
  18057.  
  18058.  
  18059.  
  18060.  
  18061.  
  18062.  
  18063.  
  18064.  
  18065.  
  18066.  
  18067.  
  18068.  
  18069.  
  18070.  
  18071.  
  18072.  
  18073.  
  18074.  
  18075.  
  18076.  
  18077.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18078.  
  18079.  
  18080.  
  18081.  
  18082.  
  18083.  
  18084.  
  18085.  
  18086.  
  18087.  
  18088.  
  18089.  
  18090.  
  18091.  
  18092.  
  18093.  
  18094.  
  18095.  
  18096.  
  18097.  
  18098.  
  18099.  
  18100.  
  18101.  
  18102.  
  18103.  
  18104.  
  18105.  
  18106.  
  18107.  
  18108.  
  18109.  
  18110.                          This Page Intentionally Blank
  18111.  
  18112.  
  18113.  
  18114.     Supplied External and RJE Programs with Magnum BBS            Page  11-1
  18115.  
  18116.  
  18117.                   Supplied External (child or 'door') programs
  18118.  
  18119.     Included with your Magnum BBS package is UTILIZ.EXE -an external program
  18120.     providing useful utilization charts of your system.  The program can  be
  18121.     invoked from the "[D]oor" (child)  selection from the main menu.   Usage
  18122.     of the program  is self-explanatory.   This program uses  information in
  18123.     the UTILIZ.DAT database in your SESSION directory.  This database exists
  18124.     if the TRACK_UTILIZATION parm in your STARTUP.x file(s) is set to Y.
  18125.  
  18126.                              Supplied RJE programs
  18127.  
  18128.         1) MSGLIST.EXE - This program (in conjunction with the ADDRJE.EXE
  18129.                          program) creates a compressed file which the user
  18130.                          can download, containing all messages on the system
  18131.                          of the user's choice (date range & msg areas).
  18132.                          This program will generate messages in the popular
  18133.                          QWK message format.
  18134.  
  18135.         2)  RJEQWK.EXE - Processes incoming QWK messages created by a user
  18136.                          offline, or downloaded from another, unrelated BBS.
  18137.  
  18138.     Again, all can be invoked from the RJE menu's "[L]ist/Execute"  command.
  18139.  
  18140.     You might find  it beneficial to  review the files  CHILDREN.BBS (called
  18141.     when [D]oor  is invoked  from main  menu), and  RJELIST.BBS (called when
  18142.     [L]ist/Execute  is  invoked  from  the  RJE  menu).  These files provide
  18143.     examples  of  how  we've  used  MILC  commands  to produce the resultant
  18144.     interaction between user, BBS and external programs.
  18145.  
  18146.  
  18147.  
  18148.  
  18149.  
  18150.  
  18151.  
  18152.  
  18153.  
  18154.  
  18155.  
  18156.  
  18157.  
  18158.  
  18159.  
  18160.  
  18161.  
  18162.  
  18163.  
  18164.  
  18165.  
  18166.  
  18167.  
  18168.  
  18169.  
  18170.  
  18171.  
  18172.  
  18173.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18174.  
  18175.  
  18176.  
  18177.  
  18178.  
  18179.  
  18180.  
  18181.  
  18182.  
  18183.  
  18184.  
  18185.  
  18186.  
  18187.  
  18188.  
  18189.  
  18190.  
  18191.  
  18192.  
  18193.  
  18194.  
  18195.  
  18196.  
  18197.  
  18198.  
  18199.  
  18200.  
  18201.  
  18202.  
  18203.  
  18204.  
  18205.  
  18206.                          This Page Intentionally Blank
  18207.  
  18208.  
  18209.  
  18210.     The NotePad Facility                                          Page  12-1
  18211.  
  18212.  
  18213.  
  18214.     Magnum incorporates a NotePad facility.   Although not obvious from  the
  18215.     menus,  you  may  want  to  inform  your  users  about it via one of the
  18216.     HELLOx.BBS files  or via  a message  in an  external menu.   The NotePad
  18217.     serves a variety of purposes for you and your users:
  18218.  
  18219.                            The NotePad as a "NotePad"
  18220.  
  18221.     To  use  the  NotePad  as  merely  a  "NotePad"  (ie:   to make notes to
  18222.     yourself), simply press  <Ctrl-O> (press O  while holding down  the Ctrl
  18223.     key).   You'll be  prompted as  to which  note #  you wish  to create or
  18224.     modify (0-99).   Up to 100  NotePads are allowed  for each user  of your
  18225.     BBS.  If any NotePads already  exist for the user, they'll be  displayed
  18226.     (numbered)  along  with  their  titles  so  that the user can pick which
  18227.     NotePad to read or modify.  If this is the user's first time  depressing
  18228.     <Ctrl-O>, s/he  can create  a note  simply by  picking a  NotePad number
  18229.     (0-99).  In any  case, Magnum will take  the user into the  ANSI message
  18230.     editor and the user can read  and/or modify the NotePad.  The  same ANSI
  18231.     editor is used for creating NotePads as is used for creating messages.
  18232.  
  18233.                 The NotePad as a "Cut & Paste" Tool for Messages
  18234.  
  18235.     When responding to or  reading a message, you  can save the contents  of
  18236.     that message into a NotePad by [R]eplying to that Message with the  ANSI
  18237.     editor.  Once inside the ANSI editor, choose <ESC><ESC> (hit the ESC key
  18238.     twice in succession).  An options menu will appear.  To save the message
  18239.     (or  any  portion  of)  the  message  you're replying to, choose 'ReRead
  18240.     Original Message w/ Marking Facilities'.  Mark the lines of the original
  18241.     message  that  you're  interested  in  and  bring  those lines into YOUR
  18242.     response.  Choose <ESC><ESC> again and choose 'NotePad Facilities'  from
  18243.     the options menu and 'save'  your reply (which now contains  portions of
  18244.     the original message) into your personal NotePad.
  18245.  
  18246.     When creating a message,  you can also bring  in text lines from  any of
  18247.     your NotePads into  your message.   Choose <ESC><ESC> and  then 'NotePad
  18248.     Facilities'.  Follow the appropriate prompts to proceed.
  18249.  
  18250.           The NotePad as a List of User ID's for CC's (Carbon Copies)
  18251.  
  18252.     When entering  a NEW  message, you  can provide  ID numbers  of users to
  18253.     issue  CC's  (Carbon  Copies)  of  your  message  to  when you save your
  18254.     message.  If  you'll be routinely  sending CC's to  a specific group  of
  18255.     users, you can  have one (or  more) of your  NotePads contain a  list of
  18256.     those User ID's.  When  prompted for the ID number  of a user to be  the
  18257.     recipient of a  CC, simply provide  the NotePad number  instead.  Magnum
  18258.     will then use  that NotePad to  read and process  the ID numbers  of the
  18259.     users to  send CC's  to.   To have  a NotePad  contain User ID's, simply
  18260.     create  a  NotePad  (any  NotePad  number  will  do), and provide the ID
  18261.     numbers as follows (via example):
  18262.  
  18263.              /10 /55 /203
  18264.              /44 /8
  18265.  
  18266.     Note that the CC list is  free-form, meaning that you're not limited  to
  18267.  
  18268.  
  18269.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18270.  
  18271.  
  18272.  
  18273.     Page  12-2                                          The NotePad Facility
  18274.  
  18275.  
  18276.     one user id per text line.  The CC list can be used when, after entering
  18277.     a new  message, the  CC prompt  will ask  for who  to send  the CC to as
  18278.     usual.   Instead of  replying with  /id as  in the  past (which is still
  18279.     supported), you can repond with #5 (note the #) to signify to use the CC
  18280.     list contained in note #5.  After CC's have been processed from note #5,
  18281.     the prompt will  re-appear so that  you might enter  additional CC's (or
  18282.     note #'s with CC lists).
  18283.  
  18284.     If you're using the remote mail  facility, the NotePad can also hold  CC
  18285.     lists containing remote addresses!  Unlike normal recipients (as many of
  18286.     the /ID entries per text line as  you wish), a remote user entry is  one
  18287.     per line.  An example CC list ala a notepad might look like:
  18288.  
  18289.             /10  /55  /32
  18290.             $1989070000/0
  18291.             $1989110006/195
  18292.             /34  /404
  18293.  
  18294.     The above would generate CC's to ID 10, 55, 32, 34 and 404 on your  BBS.
  18295.     It would  also generate  CC's to  the Sysop  (/0) of  the Magnum  system
  18296.     having a  serial# of  1989070000 and  to ID  /195 of  the Magnum  system
  18297.     having a serial# of 1989110006.
  18298.  
  18299.     CC's sent via notepad#, can have Internet E-mail CC's now.  The format
  18300.     is: /nnn(someone@someplace.com) where /nnn is the 'outside mail id' and
  18301.     the actual addressee name is enclosed within parenthesis.
  18302.  
  18303.  
  18304.  
  18305.  
  18306.  
  18307.  
  18308.  
  18309.  
  18310.  
  18311.  
  18312.  
  18313.  
  18314.  
  18315.  
  18316.  
  18317.  
  18318.  
  18319.  
  18320.  
  18321.  
  18322.  
  18323.  
  18324.  
  18325.  
  18326.  
  18327.  
  18328.  
  18329.  
  18330.  
  18331.  
  18332.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18333.  
  18334.  
  18335.  
  18336.     Setting up Additional Copies of Magnum on your LAN            Page  13-1
  18337.  
  18338.  
  18339.     If this is a 2nd (or 3rd, etc) copy of Magnum BBS that you've  purchased
  18340.     to  allow  for  additional  incoming  dialup  or  'pipe' lines (requires
  18341.     optional 'pipe' module), you'll need to install this additional copy  on
  18342.     a workstation (or server) other than the one your original Magnum BBS is
  18343.     running on.
  18344.  
  18345.     This chapter describes how to set up your additional, serialized copy or
  18346.     copies of  Magnum BBS  on other  workstations and  be able  to share the
  18347.     databases and  files with  your original  Magnum BBS.   If you purchased
  18348.     this additional copy of  Magnum and do NOT  wish to share the  databases
  18349.     and files with your original Magnum BBS, then disregard this chapter.
  18350.  
  18351.     For starters, you'll need to make sure that you supply the serial number
  18352.     of  your  ORIGINAL  Magnum  BBS  (from  your  1st system) in ALL of your
  18353.     STARTUP.x file(s)  for this  additional copy  by specifying  that serial
  18354.     number in the PARENT_SERNUM parameter of your STARTUP.x file(s).  If you
  18355.     do not supply the same serial number as that of your ORIGINAL Magnum BBS
  18356.     diskette (not that  of your new  copy of Magnum),  then you will  not be
  18357.     able  to  share  the  databases  and  damage  may occur to your original
  18358.     databases.
  18359.  
  18360.     In  addition  to  setting  up  the  same  serial  number as that of your
  18361.     ORIGINAL  (first)  Magnum  BBS  system,  you'll  need  to  set  up   the
  18362.     workstation that you'll be installing  the additional copy of Magnum  on
  18363.     to  be  able  to  share  (have  READ/WRITE access) to ALL subdirectories
  18364.     specified in your STARTUP.x file(s) for your original Magnum System.
  18365.  
  18366.     For each STARTUP.* file which exists, bring the file into your  favorite
  18367.     text  editor  and  modify  the  following  such  that  it  points to the
  18368.     subdirectories matching that of the server:
  18369.  
  18370.         PROGRAM_DIR:   *** (Cannot be shared! Must be unique to add'l copy)
  18371.         SESSION_DIR:
  18372.         BULLETIN_DIR:
  18373.         MENU_DIR:
  18374.         HELP_DIR:
  18375.         DISPLAY_DIR:
  18376.         EXTERNAL_DIR:
  18377.         RJE_DIR:
  18378.         MSG_DIR:
  18379.         WORK_DIR:      *** (Cannot be shared! Must be unique for EVERY node)
  18380.         USERS_DIR:
  18381.         SYSOUT_DIR:    *** (Cannot be shared! Must be unique to addl' copy)
  18382.         ;
  18383.         ; ------ File Directories
  18384.         ;
  18385.         FILEDIR_A:
  18386.         FILEDIR_B:
  18387.         FILEDIR_C:
  18388.         FILEDIR_D:
  18389.         FILEDIR_E:
  18390.         FILEDIR_F:
  18391.         FILEDIR_G:
  18392.         FILEDIR_H:
  18393.  
  18394.  
  18395.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18396.  
  18397.  
  18398.  
  18399.     Page  13-2            Setting up Additional Copies of Magnum on your LAN
  18400.  
  18401.  
  18402.         FILEDIR_I:
  18403.         FILEDIR_J:
  18404.         FILEDIR_K:
  18405.         FILEDIR_L:
  18406.         FILEDIR_M:
  18407.         FILEDIR_N:
  18408.         FILEDIR_O:
  18409.         FILEDIR_P:
  18410.         FILEDIR_Q:
  18411.         FILEDIR_R:
  18412.         FILEDIR_S:
  18413.         FILEDIR_T:
  18414.         FILEDIR_U:
  18415.         FILEDIR_V:
  18416.         FILEDIR_W:
  18417.         FILEDIR_X:
  18418.         FILEDIR_Y:
  18419.         FILEDIR_Z:
  18420.  
  18421.     For example, if the Server (original Magnum installation) designates its
  18422.     SESSION_DIR as:
  18423.  
  18424.        E:\MAGNUM\SES_DIR
  18425.  
  18426.     then your workstation's path (additional copy of Magnum) might look
  18427.     something like:
  18428.  
  18429.        S:\MAGNUM\SES_DIR
  18430.  
  18431.     or whatever letter on your server is designated to match the same  drive
  18432.     letter that the server uses to house the session directory.
  18433.  
  18434.     The  PROGRAM_DIR,  WORK_DIR,  and  SYSOUT_DIR  must  NOT  use  the  same
  18435.     directories as designated by the server or any other workstation.   EACH
  18436.     WORKSTATION  MUST  HAVE  ITS  OWN,  UNIQUE  PROGRAM_DIR,  WORK_DIR   and
  18437.     SYSOUT_DIR  directory  names!    You  may  have to manually create these
  18438.     subdirectories on your workstation as well as supply those same names as
  18439.     pathnames for their respective keywords in your STARTUP.* files.
  18440.  
  18441.     The PROGRAM_DIR  is the  directory where  you've installed  (or plan  to
  18442.     install your additional copy of Magnum).
  18443.  
  18444.     Note that ALL BBS functions  are supported (as in your  original Magnum)
  18445.     with the exception of  Group Chat.  Chat  is currently limited to  those
  18446.     logged onto the same machine (being defined as the machine in which  the
  18447.     MBBS.EXE program is running on).  In other words, if you have the 9-node
  18448.     version (for  example) on  your Server,  and the  9-node version on your
  18449.     workstation,  only  the  9-nodes  of  each  machine can be used for Chat
  18450.     within the same group of 9-nodes.
  18451.  
  18452.  
  18453.  
  18454.  
  18455.  
  18456.  
  18457.  
  18458.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18459.  
  18460.  
  18461.  
  18462.     Setting up Additional Copies of Magnum on your LAN            Page  13-3
  18463.     Remapping Directories for your Workstation
  18464.  
  18465.  
  18466.     Remapping of  directories is  recommended.   Unless you're  running on a
  18467.     LAN, remapping of directories  will be of little  to no use to  you.  To
  18468.     perform remapping of directories, create  a file (node specific) in  the
  18469.     PROGRAM DIRectory of  your workstation called  REMAPDIR.x (where 'x'  is
  18470.     the node#).  The format of this ASCII text file is:
  18471.  
  18472.               oldpath = newpath
  18473.  
  18474.     Wherever  'oldpath'  is  found,  it  will  be  replaced  with 'newpath'.
  18475.     Example:
  18476.  
  18477.               D:\MAGNUM\ATM = M:\FONT\ATM
  18478.               D:\MAGNUM\ANNOUNCE = X:\BBS\NOTICES
  18479.  
  18480.     Using  the  above,  a  filename  of d:\magnum\announce\meeting.txt would
  18481.     become  x:\bbs\notices\meeting.txt  -  the  actual  filename.ext doesn't
  18482.     change, only the directory path housing that filename.ext changes.
  18483.  
  18484.     Server  /  netnames  are  also  allowed.    For  example,  the following
  18485.     statement is also valid:
  18486.  
  18487.               D:\MAGNUM\ATM = \\SERVER1\DRIVEX\FONTS\ATM
  18488.  
  18489.     Note that both 'oldpath'  and 'newpath' are limited  to a maximum of  65
  18490.     characters each.
  18491.  
  18492.     You may have as many text lines as you wish in this file.
  18493.  
  18494.         NOTE: The intention of remapping is NOT to provide a 'quick & dirty'
  18495.               override to the directory path names you defined in your
  18496.               STARTUP.x file(s), but to override any hard-coded directory
  18497.               names in your displayable files! For example, files which
  18498.               "include" other files (with MILC @Ix command) would only work
  18499.               properly on the server machine (on a network). Although the
  18500.               remapping function DOES provide a 'quick & dirty' override to
  18501.               the directory path names defined in your STARTUP.x file(s), we
  18502.               advise extreme caution when doing so. You should NEVER remap
  18503.               the SESSION or PROGRAM directories!
  18504.  
  18505.     In  addtion  to  MSESSION.EXE,  the  following  programs  also   observe
  18506.     remapping:    MBBSEXEC,  MSGLIST.    REMAPDIR.x  must  be in the PROGRAM
  18507.     DIRectory of each  workstation, and must  remap to the  proper places in
  18508.     order  for  the  'extended  msgbase'  and  'extended  filebase' optional
  18509.     modules  to  work  properly.    Also,  remapping  is  required  for  the
  18510.     'compressed message list' function of the RJE menu to work.
  18511.  
  18512.     Note  that  MBBS.EXE  and  all  other  .EXE's  not  listed  in the above
  18513.     paragraph do NOT observe remapping.  Once again, if you're not running a
  18514.     LAN, re-mapping will be  of little to no  use to you.
  18515.  
  18516.  
  18517.  
  18518.  
  18519.  
  18520.  
  18521.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18522.  
  18523.  
  18524.  
  18525.  
  18526.  
  18527.  
  18528.  
  18529.  
  18530.  
  18531.  
  18532.  
  18533.  
  18534.  
  18535.  
  18536.  
  18537.  
  18538.  
  18539.  
  18540.  
  18541.  
  18542.  
  18543.  
  18544.  
  18545.  
  18546.  
  18547.  
  18548.  
  18549.  
  18550.  
  18551.  
  18552.  
  18553.  
  18554.                          This Page Intentionally Blank
  18555.  
  18556.  
  18557.  
  18558.     For Systems using 'Extended File' and/or 'Extended MsgBase'   Page  14-1
  18559.  
  18560.  
  18561.  
  18562.     The 'user' fields  FILEBASE and MSGBASE  indicate the LAST  FileBase and
  18563.     MsgBase the user was  in.  The next  time the user logs  on, Magnum will
  18564.     automatically change to these bases.
  18565.  
  18566.     The fields  FILEGRP and  MSGGRP in  every user's  records add  even more
  18567.     flexibility  to  the  extended  MsgBase  and  extended FileBase modules.
  18568.     Until now, access to certain  File and Msg Bases were  determined solely
  18569.     by security level.  With the FILEGRP and MSGGRP fields, each user can be
  18570.     assigned  to  a  File  Group  or  Msg  Group  (think  of these groups as
  18571.     profiles).  By way  of example, let's suppose  that you set up  John Doe
  18572.     (ID:  /10)  such that his  FILEGRP is 3  (you can do  this by pulling up
  18573.     record 10 of the User database area of the Sysop menu when logged on  as
  18574.     Sysop and changing his FILEGRP to 3; or you can write a .MEX program  to
  18575.     perform bulk updates).  Regardless, assuming that John Doe (ID:  /10) is
  18576.     assigned to FileGrp 3. This means that Magnum will look in your  SESSION
  18577.     DIRectory for a file  by the name of  FILE3.GRP and if it  finds it, the
  18578.     contents  of  this  ASCII  text  file  will override the security levels
  18579.     imposed by the FILEBASE.EXE program when you set up your FileBases.   If
  18580.     Magnum doesn't find FILE3.GRP, Magnum will  act as it did prior to  this
  18581.     version:  it  determines access to  the different FileBases  by means of
  18582.     security levels set by the FILEBASE.EXE program.  Assuming that the file
  18583.     FILE3.GRP exists, the contents might look like the following:
  18584.  
  18585.        ;
  18586.        ; Definitions file for File Group 3
  18587.        ;
  18588.        ; Users assigned to File Group 3 have access to these File Bases
  18589.        ; regardless of Security Level.
  18590.        ;
  18591.        1 RWL ; Los Angeles OS/2 User Group.. Override Read/Write/List Access
  18592.        2 RL ; OS/2 2.0.......................... Override Read/List Access
  18593.        38 L ; California Real Estate............ Override List Access
  18594.        224 ; New York Real Estate............... No Override
  18595.  
  18596.     As you may have  guessed from the above  sample file, the semicolon  (;)
  18597.     denotes the beginning of a comment.   A comment starts with a  semicolon
  18598.     and lasts until  the end of  that text line.   Blank lines  are ignored.
  18599.     The above sample  allows all users  who's FILEGRP field  is set to  3 to
  18600.     have access to FileBases 1, 2, 38 and 224.  The comments (ie:  New  York
  18601.     Real Estate) are merely comments and may or may not have anything to  do
  18602.     with the content of  the actual FileBase denoted  by that number.   If R
  18603.     appears,  READ  (or  download)  access  will  be  given to this FileBase
  18604.     regardless of the READ security level set with the FILEBASE.EXE program.
  18605.     If W appears, WRITE  (or upload) access will  be given to this  FileBase
  18606.     regardless  of  the  WRITE  security  level  set  with  the FILEBASE.EXE
  18607.     program.   If L  appears, LIST  access will  be given  to this  FileBase
  18608.     regardless of the LIST security level set with the FILEBASE.EXE program.
  18609.  
  18610.     Likewise, the MSGGRP field works in an identical fashion except that  it
  18611.     expects to find its  information in MSG3.GRP if  3 were assigned to  the
  18612.     MSGGRP field of a particular user.
  18613.  
  18614.     NOTE1: The FILEGRP and MSGGRP fields override the ability to ACCESS
  18615.  
  18616.  
  18617.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18618.  
  18619.  
  18620.  
  18621.     Page  14-2   For Systems using 'Extended File' and/or 'Extended MsgBase'
  18622.  
  18623.  
  18624.            FileBases and MsgBases which the user would not ordinarily have
  18625.            access to. Furthermore, the .GRP file containing the definitions
  18626.            of a group, can override READ(download), WRITE(upload) and LIST
  18627.            security levels. Note that if a dependency on MEMODATE1 or
  18628.            MEMODATE2 exists within a particular FileBase (as set by
  18629.            FILEBASE.EXE), these  parameters will override it!
  18630.  
  18631.     NOTE2: Although you don't need to use groups at all, the use of such
  18632.            groups will definitely demonstrate a speed increase in the
  18633.            presentation of the different FileBases and MsgBases for the user
  18634.            to choose from.
  18635.  
  18636.     NOTE3: For those Sysops running the type of board where each user
  18637.            represents a different company for example, they might want to
  18638.            set up their BBS such that these users only have access to one
  18639.            particular FileBase and one particular MsgBase. Let's suppose
  18640.            that users of XYZ Corp are assigned FileBase 5 and MsgBase 8.
  18641.            The Sysop could then assign 5 to their FILEBASE and 8 to their
  18642.            MSGBASE. Furthermore, the Sysop could disable the "[F]ileBase
  18643.            Change" and "[M]sgBase Change" menu selections by raising the
  18644.            security level of these menu choices to one higher than these
  18645.            users. This, in effect, insures that users of XYZ Corp will
  18646.            only see (and know about) FileBase 5 and MsgBase 8.
  18647.  
  18648.     NOTE4: In that only 255 file groups and 255 message groups are allowed
  18649.            with the extended filebase and extended msgbase, we've added the
  18650.            following feature:
  18651.  
  18652.              - If the file Uxxxxx.MG exists (where xxxxx is the user's id
  18653.                number), this file will be used INSTEAD of any MSG group that
  18654.                user is assigned to.
  18655.  
  18656.              - If the file Uxxxxx.FG exists (where xxxxx is the user's id
  18657.                number), this file will be used INSTEAD of any FILE group
  18658.                that user is assigned to.
  18659.  
  18660.            The format of the Uxxxxx.MG and Uxxxxx.FG files are identical to
  18661.            that of the corresponding .GRP files.  If you create Uxxxxx.FG
  18662.            or Uxxxxx.MG files, they are to be placed in the SESSION
  18663.            DIRectory. Do not use leading zeros for the xxxxx portion!
  18664.            Examples:
  18665.  
  18666.                   U0.MG  - Group File for ID 0 for MsgBase access
  18667.                 U156.FG  - Group File for ID 156 for FileBase access
  18668.  
  18669.            - When viewing a user's record in the Sysop menu, whatever File
  18670.              Group or Msg Group they're assigned to will be followed by the
  18671.              '*' character if the override file (Uxxxxx.?G) exists for that
  18672.              user.
  18673.  
  18674.  
  18675.  
  18676.  
  18677.  
  18678.  
  18679.  
  18680.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18681.  
  18682.  
  18683.  
  18684.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-1
  18685.  
  18686.  
  18687.  
  18688.                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  18689.                   -------------------------------------------
  18690.  
  18691.     AMMO (Automated Magnum Mailer Option)  is built into Magnum systems  and
  18692.     allows the Sysop the option  of implementing this capability.   The term
  18693.     AMMO refers to the  link level layer of  Magnum systems, while the  term
  18694.     RMAIL refers to  the user level  layer.  When  we speak of  AMMO in this
  18695.     chapter,  it will  be about setting  up and using  this option from  the
  18696.     Sysop's point of view.  When we speak of RMAIL in this document, it will
  18697.     be about using the 'remote  mail' facility of Magnum from  your caller's
  18698.     point of view.
  18699.  
  18700.                                     Introduction:
  18701.                                     -------------
  18702.  
  18703.     As  Sysops,  we're  all  familiar  with  the callers (users) of your BBS
  18704.     dialing in  with their  modems (or  pipe modules),  going to the message
  18705.     section, and reading their mail, responding to their mail, and  entering
  18706.     new mail.  It's  very similar to inter-office  mail at a company.   With
  18707.     the introduction of RMAIL (remote mail), the callers (users) of your BBS
  18708.     can now do the same thing but are no longer limited to the users of your
  18709.     BBS.  They can exchange messages with remote users of remote Magnum  BBS
  18710.     systems!    The  same  features  that  exist  currently (receipts, CC's,
  18711.     message forwarding,  private mail,  public mail,  messages to  ALL) also
  18712.     exist with RMAIL.   Just like mailing a  letter via the postal  service,
  18713.     the user needs to know the address  of someone on a remote system.   The
  18714.     address is composed of 2 things:  the remote system's serial number, and
  18715.     the remote user's ID number on that system.  An RMAIL address looks like
  18716.     the following:
  18717.  
  18718.        $1989070000/0
  18719.  
  18720.     The $ character  specifices that this  is RMAIL (not  local mail).   The
  18721.     1989070000 number happens to be the serial number of the Gilmore Systems
  18722.     BBS located  in  Van Nuys,  California.  The  /0  is the user id of  the
  18723.     Sysop at that system.  In this case, the Sysop is Chuck Gilmore.  So the
  18724.     above address is actually the  address of Chuck Gilmore at  his Van Nuys
  18725.     BBS.
  18726.  
  18727.     Envision that each Magnum System is like a city itself.  When you send a
  18728.     letter  to  someone  through  postal  services  (mail),  you include the
  18729.     person's name  and address  on the  envelope, along  with your  name and
  18730.     return  address.    In  the  above  example,  the  Magnum Serial# is the
  18731.     equivalent of the  "city, state, zip  and country" on  the envelope, and
  18732.     the ID of the user on that system you're sending mail to is the person's
  18733.     "name".    Together,  the  serial#  and  name  form  a complete address.
  18734.     Suppose you want to send a  letter to "John Smith" in Chicago.   Knowing
  18735.     that John  smith is  ID /348  on the  Chicago BBS,  his complete address
  18736.     would be  $1991000002/348 ($  specifies RMAIL  followed by  the 10-digit
  18737.     serial#, the  / character  and ID).   The  advantages of  using RMAIL as
  18738.     opposed to postal mail is multi-fold:
  18739.  
  18740.       - You don't need to know city, state, zip, country, etc. The serial#
  18741.  
  18742.  
  18743.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18744.  
  18745.  
  18746.  
  18747.     Page  15-2                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  18748.  
  18749.  
  18750.         is the equivalent of all this information. In most cases, when
  18751.         prompted for serial#, entering the ? character will provide you
  18752.         with a list of serial#'s and a written description.
  18753.       - You don't need to include your 'return address' (Magnum does this
  18754.         for you).
  18755.       - You can compose the message once, then send CC's (carbon copies) to
  18756.         other addresses without having to re-enter the message.
  18757.       - You can request a 'return receipt' to notify you that the message
  18758.         you sent was received by the addressee.
  18759.       - You can rest assured that the message will not get 'lost' or go to a
  18760.         'dead box' due to illegible writing, or that the postal workers will
  18761.         go on strike!
  18762.       - You can even send 'Junk Mail' (goes to every Magnum system on the
  18763.         mail network associated with AMMO).
  18764.       - You can send 'private mail'.
  18765.       - "Attached" files are also sent to the remote site along with the
  18766.         message... you don't need to send a package with a diskette or have
  18767.         the remote site call your BBS to download a certain file!
  18768.       - etc, etc.
  18769.  
  18770.     By way of example, let's suppose that you are XYZ Corporation with
  18771.     an office in Los Angeles (USA). XYZ Corporation also has branch offices
  18772.     in Chicago (USA), New York (USA), Tokyo (Japan), London (UK) and
  18773.     Bonn (Germany). Each location is running a Magnum System as follows:
  18774.  
  18775.            Location          Magnum Serial#
  18776.            -------------     --------------
  18777.  
  18778.            Los Angeles       1991000001
  18779.            Chicago           1991000002
  18780.            New York          1991000003
  18781.            London            1991000004
  18782.            Bonn              1991000005
  18783.            Tokyo             1991000006
  18784.  
  18785.     To complicate things further, each location is in a different time zone,
  18786.     thus   making   voice   communications   difficult   in  terms  of  time
  18787.     coordination.  Each location needs to communicate vital information with
  18788.     all other  offices.   In terms  of distance,  The Los  Angeles office is
  18789.     closest to the Chicago office, which in turn is closest to the New  York
  18790.     office, which in turn is closest  to the London office which in  turn is
  18791.     closest to the Bonn office which in turn is closest to the Tokyo  office
  18792.     (the exact order we've  listed them in the  above chart).  Now,  suppose
  18793.     that someone in the New York office needs to get a message to the London
  18794.     office.    They  would  call  the  NY  BBS with their modem or via 'Pipe
  18795.     Module' on  their LAN  and enter  a message  to someone  specific at the
  18796.     London BBS.  At  a predetermined time, the  Magnum system in NY  "calls"
  18797.     the Magnum system in London  and transfers that message (along  with any
  18798.     other messages targeted at the London office from New York); during that
  18799.     same transfer, any mail from the London office targeted to the NY office
  18800.     are also  transfered.   This is  known as  'direct' (or  point-to-point)
  18801.     RMAIL.
  18802.  
  18803.     Now, suppose AMMO links are set up such that the Los Angeles and Chicago
  18804.  
  18805.  
  18806.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18807.  
  18808.  
  18809.  
  18810.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-3
  18811.  
  18812.  
  18813.     offices set up their Magnum systems to exchange mail once (or twice,  or
  18814.     as many times as you wish) every day (or twice a week, or as many  times
  18815.     as you wish).  Likewise, the Chicago and New York offices are set up  to
  18816.     exchange mail at some predermined time schedule.  The same with the  New
  18817.     York<-->London office, the London<-->Bonn office, and the  Bonn<-->Tokyo
  18818.     office.  XYZ Corporation now has RMAIL capabilities from any of their  6
  18819.     offices to any  other of their  6 offices.   In that each  office has an
  18820.     AMMO link between  their neigboring or  closest office, phone  costs are
  18821.     minimized.  Someone in the Bonn office could send someone at the Chicago
  18822.     office a  public (or  private) RMAIL  message by  specifying the Chicago
  18823.     serial# and  the ID  of the  person at  that system.   In  that the Bonn
  18824.     office is linked with the London  office, the message first goes to  the
  18825.     London  office,  then  to  the  New  York  office,  and  finally  to its
  18826.     destination in Chicago.   If it is a  private message, the users  at the
  18827.     London and New York offices will never know about the message.  This  is
  18828.     known as 'indirect' (or 'store-and-forward') RMAIL.
  18829.  
  18830.     If the volume and frequency of mail between the Bonn and Chicago offices
  18831.     are higher  than the  other four,  a direct  link between  the Bonn  and
  18832.     Chicago office can be set up as well as the existing links.  Each Magnum
  18833.     system can  have as  many links  as is  desired, and  can be  set up  to
  18834.     exchange mail as many times as desired with whatever systems it desires!
  18835.  
  18836.     We've    defined     'direct'    (point-to-point),     and    'indirect'
  18837.     (store-and-forward) AMMO capabilities so far.  In our examples, we spoke
  18838.     of  exchanging  mail  to  a  specific  person  (ID)  at  a specific city
  18839.     (serial#).  We also have  BROADCAST capabilities.  A BROADCAST  is where
  18840.     you don't  enter a  message to  a specific  user or  even to  a specific
  18841.     serial#.  You enter a message to ALL, and use the word BROADCAST as  the
  18842.     RMAIL serial#.   This means that  every Magnum system  on the link  will
  18843.     receive  the  BROADCAST  message  and  address  it  to  ALL.   BROADCAST
  18844.     capability is a quick way to post a general message to ALL users on  ALL
  18845.     serial#'s on the AMMO link.  This has advantages and disadvantages.  The
  18846.     advantage to this  should be quite  obvious; the disadvantage  of having
  18847.     MANY systems on the 'link' is  that a BROADCAST message could be  abused
  18848.     and perceived by many  of the users on  other systems as 'junk  mail'...
  18849.     much the same  way as your  receiving 'junk mail'  at your residence  in
  18850.     your mailbox.   There are only  two possible addressee's  of a BROADCAST
  18851.     message:  ALL or SYSOPs.  If SYSOPs, the message is broadcasted only  to
  18852.     the SYSOPs on the AMMO link.
  18853.  
  18854.     In addition  to DIRECT,  INDIRECT, and  BROADCAST mail,  ECHO mail  also
  18855.     exists.  ECHO is  similar to 'store-and-forward', however  ECHO modifies
  18856.     this to  'store-post-and-forward'.   In other  words, if  someone at the
  18857.     Chicago office chooses to send a message to someone at the Bonn  office,
  18858.     the links that it  goes through (New York,  London) will also post  this
  18859.     message on their  systems so that  the users of  their systems can  also
  18860.     read and respond to this message.
  18861.  
  18862.     We've covered  four types  of RMAIL:   DIRECT,  INDIRECT, BROADCAST, and
  18863.     ECHO.   In addition  to the  four types,  all of  the usual  Magnum mail
  18864.     features can  also be  used:   CC's (Carbon  copies), receipts,  message
  18865.     forwarding, etc.  After you create a message, you can send CC's to  both
  18866.     users on the system you've entered  the message on, and to remote  users
  18867.  
  18868.  
  18869.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18870.  
  18871.  
  18872.  
  18873.     Page  15-4                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  18874.  
  18875.  
  18876.     on remote  systems.   You can  forward a  message to  a user on a remote
  18877.     system.  You can also request a receipt to be generated and sent to  you
  18878.     when  the  addressee  of  a  message  you  sent (either local or remote)
  18879.     receives your message.
  18880.  
  18881.     As in the  past, the Notepad  can be used  to contain a  list of CC's to
  18882.     send a  message to  (see the chapter entitled  "The NotePad  Facility").
  18883.     With the  introduction of  RMAIL, the  CC's can  also contain addresses.
  18884.     See the  chapter entitle  "The NotePad  Facility" for  an example of how
  18885.     your users can  use the notepad  to contain CC  lists to both  local and
  18886.     remote users.
  18887.  
  18888.     So far, our example situations  have been with a small,  6-office Magnum
  18889.     network with  only one  or two  links at  each system.   Even this small
  18890.     system  could  have  any  of  its  systems  linked with any other of its
  18891.     systems.  The Tokyo office might open two or three more branches of  XYZ
  18892.     Corp in neighboring cities.  If it has Magnum systems set up in each  of
  18893.     those cities, links from  the Tokyo office could  also be set up  to the
  18894.     other three.   It  can even  exclude those  links from  its Bonn link (a
  18895.     closed local network) as opposed to making it part of the wide network.
  18896.  
  18897.     There is  no limit  as to  how many  systems (serial#'s)  can be  linked
  18898.     together,  and  no  limit  as  to  how  many links each system can have.
  18899.     However, there is a limit of 500 'store-and-forward' serial#'s which can
  18900.     be supported  by each  direct link,  and a  limit of  5,000 messages per
  18901.     transmission.  We  feel that approaching  this limit on  'large' systems
  18902.     would be unlikely.
  18903.  
  18904.     ------------------------------------------------------------------------
  18905.  
  18906.                                 AMMO - Account Setup:
  18907.                                 ---------------------
  18908.  
  18909.     Like your  USER accounts  (each user  has an  ID number  and occupies  a
  18910.     record in your USER database), your MAIL accounts also have an ID number
  18911.     and occupy a record  in your USER database.   A mail account  is an AMMO
  18912.     'LINK' between your system and the system you're setting a LINK with.
  18913.  
  18914.     To set up a mail account (LINK) with another AMMO system, you'll need to
  18915.     coordinate the  effort with  the Sysop  at the  system you'll be linking
  18916.     with.  Using the "Gilmore  Systems BBS" in Southern California  (serial#
  18917.     1989070000)  as  an  example,  and  YOUR  BBS  (assume  your  serial# is
  18918.     1990000000), follow these directions:
  18919.  
  18920.        0) NOTE: This is just an EXAMPLE; we're not planning on setting up a
  18921.                 link between our BBS and yours.
  18922.  
  18923.        1) Log onto your own BBS locally (* LOGON at the MBBS "Command => "
  18924.           prompt). Log on as a NEW user with a name something like:
  18925.  
  18926.              Firstname=GILMORE, Middlename=SYSTEMS, Lastname=BBS
  18927.  
  18928.           Choose a password and write it down.
  18929.           Complete the logon procedure, write down the ID number assigned to
  18930.  
  18931.  
  18932.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18933.  
  18934.  
  18935.  
  18936.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-5
  18937.  
  18938.  
  18939.           this account, and log off.
  18940.  
  18941.        2) Call our BBS and leave a message that you'd like to establish an
  18942.           AMMO link with us. Give us:
  18943.  
  18944.              A) Your BBS name.
  18945.              B) The ID number and PASSWORD from step 1.
  18946.              C) Your modem telephone number.
  18947.              D) Preferred days/times you'd like for your system to call
  18948.                 ours (this is optional).
  18949.  
  18950.        3) Call our BBS back in a day or so and we'll have a message for you
  18951.           stating A,B,C and D of step 2 above for the account we've set up
  18952.           for your system.
  18953.  
  18954.        4) Log onto your own BBS locally (* LOGON at the MBBS "Command => "
  18955.           prompt). Log on as SYSOP this time. If you don't have your COLOR
  18956.           settings ON, we suggest you turn them on for this logon.
  18957.  
  18958.              A) Go into the SYSOP Menu, USER database area.
  18959.              B) Pull up the record of the ID number you gave us the day
  18960.                 before.
  18961.              C) Change TYPE to M  (enter the word TYPE and press ENTER;
  18962.                 you'll be prompted for new TYPE; respond with M for MAIL).
  18963.                 After you've changed the TYPE to M, the remaining fields to
  18964.                 fill in will appear in RED.
  18965.              D) Change SYSTEM_SERIAL# (enter the word SYSTEM_SERIAL# and
  18966.                 press ENTER; you'll be prompted for new Serial#;ID;password)
  18967.                 Enter the Serial# of the system you'll be setting up a link
  18968.                 with (in this case, our system), followed by a semicolon,
  18969.                 the ID number we gave you, another semicolon, and the
  18970.                 password we gave you.
  18971.              E) Note that PHONE1 and PHONE2 have been changed to DIALCMD1
  18972.                 and DIALCMD2 for MAIL accounts. These fields should hold the
  18973.                 modem commands necessary to dial the remote BBS with. These
  18974.                 two fields are concatenated (treated as one) when Magnum
  18975.                 dials this account. For example:
  18976.                     DIALCMD1=ATH0S7=60,DT    DIALCMD2=1-818-782-6290
  18977.                 Note the S7=60 portion tells your modem to wait up to 60
  18978.                 seconds for a connection with each dial attempt. AMMO only
  18979.                 tries 20 times before giving up. 20 tries at 60 seconds/try
  18980.                 = 20 minutes.
  18981.              F) Change all other fields in RED color to whatever is
  18982.                 appropriate. Make sure we have access to the message
  18983.                 conferences you wish.
  18984.              G) Assign us to a MSGGRP. For example, MSGGRP of 3 means that
  18985.                 you'll need to create the file MSG3.GRP in your SESSION
  18986.                 DIRectory. If you're NOT using the 'Extended MsgBase'
  18987.                 module, the contents of this file should be one ASCII text
  18988.                 line as follows:
  18989.                    0  RWL ;
  18990.                 This means that we'll have read/write/list access to
  18991.                 MsgBase 0. If you ARE using the 'Extended Msgbase' module,
  18992.                 give us access to the MsgBases you wish us to have access
  18993.  
  18994.  
  18995.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  18996.  
  18997.  
  18998.  
  18999.     Page  15-6                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  19000.  
  19001.  
  19002.                 to. Example:
  19003.                    0 RWL ;
  19004.                    3 RWL ;
  19005.                    157 RWL ;
  19006.              H) Be CERTAIN to change the RMAIL field to Y (yes)!!!!
  19007.              I) Add our Serial# to the AMMO.MAG file in your SESSION
  19008.                 DIRectory.
  19009.  
  19010.     If the  file AMMO.MAG  doesn't exist  in your  SESSION DIRectory, you'll
  19011.     need to create it.  Without it, AMMO/RMAIL is "not installed".  This  is
  19012.     an ASCII text file with the following format (via example):
  19013.  
  19014.        AGE: 30
  19015.        1989070000(0):Gilmore Systems Magnum BBS  ; BBS name
  19016.                      1989110006 ; \
  19017.                      1990020045 ;  \ ____ Maximum of 500 supported serial#'s
  19018.                      1992030102 ;  /      accessible to the above as "store
  19019.                      1991050607 ; /       and forward" serial#'s.
  19020.  
  19021.        1989110006(0):TJD Software BBS            ; BBS name
  19022.                      1992030102 ; ----> "store & forward" to this serial#
  19023.  
  19024.        1991020321(22):ABC Corp BBS
  19025.  
  19026.     The first thing you'll  notice above is the  AGE:  keyword.   This is an
  19027.     OPTIONAL keyword and can be placed anywhere within the AMMO.MAG file (as
  19028.     long as its on a line by itself):
  19029.  
  19030.               AGE: xxx
  19031.  
  19032.     where xxx is the age (in days) of messages which are allowed to be  sent
  19033.     to or received from other systems.  For example, if you have:
  19034.  
  19035.               AGE: 20
  19036.  
  19037.     then no  messages older  than 20  days will  be sent  to other  systems.
  19038.     Likewise, no incoming  messages older than  20 days will  be accepted by
  19039.     your system.
  19040.  
  19041.     The age (in days) of a  message is determined by its creation  date (the
  19042.     date the message was created).   This feature is HIGHLY  recommended for
  19043.     all Sysops participating  in AMMO/RMAIL.   The "AGE:   xxx" (without the
  19044.     quotes) specification is  not limited to  appear only once  in the file.
  19045.     You may place it  on however many lines  of your AMMO.MAG file  that you
  19046.     wish,  each  occurrence  can  have  a  different  parameter.   Once this
  19047.     specification appears in  the AMMO.MAG file,  the age you  specify is in
  19048.     effect until another AGE specification  appears in the file, or  for the
  19049.     remainder of the  file (whichever occurs  first).  You  can even have  a
  19050.     different AGE parameter for every serial# if you wish by placing an  AGE
  19051.     statement on  the line  immediately before  a particular  serial#.   One
  19052.     excellent example of how this feature would be of great significance  is
  19053.     when you're setting up a new AMMO  account:  without the use of the  AGE
  19054.     field, your first link with a new AMMO account will receive your  entire
  19055.     messagebase(s).  You may want to limit the outgoing messages to this new
  19056.  
  19057.  
  19058.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19059.  
  19060.  
  19061.  
  19062.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-7
  19063.  
  19064.  
  19065.     account by, say, 60 days.  Also, for informational purposes, a parameter
  19066.     of zero (ie:  AGE:  0) turns off this feature (ie:  no age  calculations
  19067.     will be performed).
  19068.  
  19069.     SERAIL#'s:
  19070.  
  19071.     After the optional AGE:  keyword in the above example, the serial#'s  of
  19072.     other  systems  are  specified.    The  number in parens indicates which
  19073.     msgbase incoming mail from this serial# will be placed.  If you are  NOT
  19074.     using the optional "Extended MsgBase"  module, then this number MUST  be
  19075.     0. The format of the file is simple:
  19076.  
  19077.         Direct_Link_Serial_Number(MsgBase):BBS NAME       ; Optional Comment
  19078.                      Optional_Store_and_Forward_Serial_Number_1 ; Comment
  19079.                      Optional_Store_and_Forward_Serial_Number_2 ; Comment
  19080.                      Optional_Store_and_Forward_Serial_Number_N ; Comment
  19081.  
  19082.         Next_Direct_Link_Serial_Number(MsgBase):BBSNAME         ; Comment
  19083.               etc, etc, etc
  19084.  
  19085.     Note that normally any  'store-and-forward' links should also  appear as
  19086.     either a 'direct-link' somewhere in the file, or should also appear as a
  19087.     'store-and-forward' link under more than one 'direct-link'.
  19088.  
  19089.     Mail coming in to your BBS from whatever Serial#, will be placed in  the
  19090.     MsgBase specified in parenthesis next to the serial# above.  However, if
  19091.     a 'reply'  to a  message is  coming in,  it will  be placed  in the same
  19092.     MsgBase and conference  area as the  message it's replying  to.  If  any
  19093.     'store-and-forward' serial#'s  are listed  below a  'direct-link' serial
  19094.     number (but  before the  next direct-link  serial#), messages  for those
  19095.     serial#'s will be sent to  the direct-link serial# when connected.   For
  19096.     example, if you're  in New York  and you have  a 'direct link'  with us,
  19097.     then you might consider having 'direct links' with other Magnum  systems
  19098.     in  your  area.    You  could  then  list  those  serial#'s  as optional
  19099.     store-and-forward numbers under the direct link with our serial# so that
  19100.     users of those serial#'s could send us mail via your BBS.
  19101.  
  19102.     Remember,  a  'direct-link'  entry  in  the  AMMO.MAG file consists of a
  19103.     10-digit  serial#,  immediately  followed  by  a MsgBase in parenthesis,
  19104.     which  is  immediately  followed  by  a  colon  (:)  character, which is
  19105.     immediately followed by descriptive text of the BBS.
  19106.  
  19107.     A 'store-and-forward' link entry (a serial# in which messages are stored
  19108.     on your BBS and then forwarded  to a 'direct-link' serial#) is simply  a
  19109.     10-digit  serial#   (and  nothing   else)  which   is  listed   below  a
  19110.     'direct-link' serial# (and before the next 'direct-link' serial#).  Each
  19111.     'direct-link'   serial#   can   be   followed   by   as   many   as  500
  19112.     'store-and-forward'  serial#'s.     When  a  'direct-link'   serial#  is
  19113.     connected  with  your  BBS  for  AMMO  RMAIL exchange, the 'direct-link'
  19114.     serial# receives all mail targeted  for its serial# along with  all mail
  19115.     targeted for  the 'store-and-forward'  serial#'s listed  below it.   Any
  19116.     mail   sent   to   the   'direct-link'   serial#   (including  those  of
  19117.     'store-and-forward') will  be marked  by AMMO  as being  "sent" on  your
  19118.     system, and the 'store-and-forward' messages will be considered "unsent"
  19119.  
  19120.  
  19121.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19122.  
  19123.  
  19124.  
  19125.     Page  15-8                   Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  19126.  
  19127.  
  19128.     on the receiving system until they reach their target BBS serial#.
  19129.  
  19130.     IMPORTANT: With the exception of 'replies', Incoming mail will be placed
  19131.                in the MsgBase you provide in parens! The actual Conference
  19132.                Area the message will be placed in will be the same as the
  19133.                conference area on the sending machine (regardless of which
  19134.                MsgBase it's coming from). Therefore, links should have
  19135.                access to ALL conference areas of your incoming MsgBase
  19136.                (A-Z), and ALL conference areas in your MsgBase (whichever it
  19137.                is) should be defined and used! FOR THIS REASON WE STRONGLY
  19138.                RECOMMEND THE 'EXTENDED MSGBASE MODULE'!!
  19139.  
  19140.     NOTE: During mail processing, OUTGOING mail will be named RMnnnnnn.ZIP
  19141.           (in the RMAILOUT directory), and INCOMING mail will be named
  19142.           RMnnnnnn.ZIP (in the RMAILIN directory). Note that nnnnnn will be
  19143.           the userid of the mail account on YOUR system.
  19144.     INFO: The RMAILOUT and RMAILIN directories are created for you
  19145.           automatically. These are subdirectories of the main MSG DIRectory.
  19146.  
  19147.     WARNING: NEVER, NEVER, NEVER GIVE OUT AMMO MAIL ACCOUNT INFORMATION TO
  19148.              ANYONE BUT THE SYSOP OF A MAGNUM SYSTEM YOU'RE ESTABLISHING A
  19149.              DIRECT LINK WITH!!
  19150.  
  19151.  
  19152.                       To start an AMMO exchange of RMAIL:
  19153.                       -----------------------------------
  19154.  
  19155.     There  are  two  ways  of  starting  an  AMMO exchange of RMAIL with any
  19156.     particular link you're set up for:
  19157.  
  19158.         1) Manually
  19159.         2) Automatically
  19160.  
  19161.     With the manual method, enter the command at the MBBS.EXE "Command => "
  19162.     prompt:
  19163.  
  19164.         * RMAIL node:id
  19165.  
  19166.     Let's suppose you've established a  mail account with us.   Suppose that
  19167.     the ID number on your  system that you've set up  for us was /999.   Now
  19168.     suppose that you want Node 2 on your system (or any other MODEM node  on
  19169.     your system)  to perform  an AMMO  RMAIL exchange  with us.   The actual
  19170.     command you'd issue is:
  19171.  
  19172.         * RMAIL 2:999
  19173.  
  19174.     The rest is automatic!   You can walk  away at this point.   Your system
  19175.     will gather up all messages targeted  for our BBS and then call  our BBS
  19176.     using node  2's modem  with the  DIALCMDx information  in account  /999.
  19177.     Your system will  try up to  20 times to  get a connection  with our BBS
  19178.     before it gives up.  If it gets connected, it will log on  automatically
  19179.     and our  BBS will  gather all  mail targeted  for your  system.  The two
  19180.     systems will  then exchange  mail, hang  up, process  mail, and  end the
  19181.     session.   Note that  either of  our systems  can call  the other at any
  19182.  
  19183.  
  19184.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19185.  
  19186.  
  19187.  
  19188.     Magnum-to-Magnum Remote Mail (AMMO / RMAIL)                   Page  15-9
  19189.  
  19190.  
  19191.     given time.
  19192.  
  19193.     To  automate  the  "*  RMAIL  Node:ID"  command,  simply  put it in your
  19194.     MBBS.ACE file to execute at whatever days you wish, and as many times as
  19195.     you wish.  See the chapter entitled "ACE - Magnum's Event Handler".
  19196.  
  19197.     Typically, busy  systems need  to set  aside times  designated for mail,
  19198.     otherwise  the  mail  account  may  never  make  it online!  This can be
  19199.     accomplished with the "x CALLS  MAIL" command to accept calls  from mail
  19200.     accounts on node x  - all other callers  (user accounts) will be  denied
  19201.     access.  To revert back to normal operations, the command "x CALLS  ALL"
  19202.     must be issued for node x. In this normal mode of operation, Magnum will
  19203.     accept  calls  from  both  Users  and  Mail  accounts.  Once again, this
  19204.     command can be placed in your MBBS.ACE file.
  19205.  
  19206.     After a mail caller calls,  processing of mail begins immediately  after
  19207.     their id and password have been successfully entered.  All usual display
  19208.     of .BBS  files are  omitted, and  "Press Enter..."  prompts are omitted.
  19209.     The entire  process is  automated between  the two  machines.   However,
  19210.     there is one  .BBS file which,  if exists, will  be processed/displayed.
  19211.     This file is RMAIL.BBS  (in the SESSION DIRectory)  if it exists.   This
  19212.     file serves no  real purpose at  this time, but  is reserved for  future
  19213.     expansion.
  19214.  
  19215.     INFO: The "* RMAIL node:id" command actually starts a LOCAL session. You
  19216.           must NOT be online on the local (console) node at the time of this
  19217.           command! AMMO is online on the local (console) node when the RMAIL
  19218.           command is given. It uses the modem and configuration for the
  19219.           'node' number you supplied, therefore, no one must be online on
  19220.           node 'node'. RMAIL only works with 'nodes' (STARTUP.n) that were
  19221.           configured as 8 databits, 1 stop bit, No parity. AMMO assumes a
  19222.           modem with the "AT" command set, although this may not be
  19223.           necessary for proper operation.
  19224.  
  19225.     Entering Messages to Users on Other Systems:
  19226.     --------------------------------------------
  19227.  
  19228.     There are 3 ways to enter a message to users on other systems:
  19229.  
  19230.        1) Use the $ character at the ADDRESSEE prompt (who is msg to?).
  19231.           Enter Serial# at the Serial# prompt (? provides serial# list).
  19232.           Enter /ID of user at that serial#.
  19233.  
  19234.        2) Use the $ character at the ADDRESSEE prompt (who is msg to?).
  19235.           Enter BROADCAST at the Serial# prompt.
  19236.           Enter ALL or SYSOPs.
  19237.           This method will broadcast your message to all systems allowed to
  19238.           exchange messages with the system you entered the message on. In
  19239.           turn, these systems will broadcast your message to all systems
  19240.           allowed to exchange messages with their systems, etc. This will
  19241.           get your message onto many systems very quickly.
  19242.  
  19243.        3) When reading a message from a remote system/user (FROM field
  19244.           starts with the $ character), choose [R]eply at the message
  19245.  
  19246.  
  19247.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19248.  
  19249.  
  19250.  
  19251.     Page  15-10                  Magnum-to-Magnum Remote Mail (AMMO / RMAIL)
  19252.  
  19253.  
  19254.           disposition prompt. Simply reply to the message as you would any
  19255.           other message.
  19256.  
  19257.     Tech Note:
  19258.     ----------
  19259.  
  19260.     With the advent  of 'remote mail'  capabilities in conjunction  with the
  19261.     ability for  the sysop  to select  the MILC  command character for their
  19262.     message system, you may be wondering if messages using MILC commands  on
  19263.     one system  are executable  on other  systems... especially  if the  two
  19264.     systems are using different MSGMILC  command characters!  The answer  is
  19265.     YES.   Regardless of  the MSGMILC  command character,  any message  that
  19266.     works on the originating system will also work on any other system  when
  19267.     transferred via remote mail.   However, the commands that are  available
  19268.     (executable) in a remote message (one received from another system)  are
  19269.     limited to the MILC commands you  specify in the MILC_CMDS parm of  your
  19270.     STARTUP.n file for that node.
  19271.  
  19272.  
  19273.  
  19274.  
  19275.  
  19276.  
  19277.  
  19278.  
  19279.  
  19280.  
  19281.  
  19282.  
  19283.  
  19284.  
  19285.  
  19286.  
  19287.  
  19288.  
  19289.  
  19290.  
  19291.  
  19292.  
  19293.  
  19294.  
  19295.  
  19296.  
  19297.  
  19298.  
  19299.  
  19300.  
  19301.  
  19302.  
  19303.  
  19304.  
  19305.  
  19306.  
  19307.  
  19308.  
  19309.  
  19310.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19311.  
  19312.  
  19313.  
  19314.     Outside Mail                                                  Page  16-1
  19315.     The QWK Message format: Offline Messaging, QWK 'Networking'
  19316.  
  19317.  
  19318.     The QWK  Message format  seems to  be "the"  message standard for BBS's.
  19319.     There are many QWK "readers" (programs that let you read and respond  to
  19320.     or enter messages offline at your own leisure) available for DOS,  OS/2,
  19321.     Windows, NT, and other operating systems.  Almost any BBS you call which
  19322.     offers downloadable applications includes a downloadable QWK reader  for
  19323.     whatever OS you're using.
  19324.  
  19325.     Originally QWK was  developed for offline  messaging (ie:   create a QWK
  19326.     packet online,  download it,  read/reply/create messages  offline with a
  19327.     QWK reader, then upload your REP  [response] packet back to the BBS  for
  19328.     processing & posting to that BBS's Message system).
  19329.  
  19330.     With the exception of Magnum BBS software, all other BBS software  makes
  19331.     the online  user WAIT  (and wait,  and wait)  for the  BBS to  compile a
  19332.     downloadable QWK message  listing specific to  that user.   Since Magnum
  19333.     executes its QWK processing programs as RJE (in the background) the user
  19334.     is not forced to wait... the user  can go on to do anything else  on the
  19335.     BBS or  even log  off -  the background  QWK programs  will continue  to
  19336.     process  the  user's  job  until  they  complete!  For normal user-based
  19337.     offline reading/writing, everything can  be accomplished for the  online
  19338.     user by entering Magnum's "[R]JE Menu".
  19339.  
  19340.     The QWK standard has been expanded to interchange messages from one  BBS
  19341.     to another (unlike  BBS's and even  unlike Operating Systems).   Some of
  19342.     the more capable BBS  software (still DOS based  at the moment) has  3rd
  19343.     party  or  built-in  QWK  programs  to  handle the processing of message
  19344.     interchange  between  unlike  BBS  systems.    Magnum  BBS  includes the
  19345.     necesssary programs to accomplish QWK-based message interchange with ANY
  19346.     BBS that offers QWK-based message interchange.
  19347.  
  19348.     The MSGLIST.EXE and RJEQWK.EXE programs (rje_dir) are the programs which
  19349.     Magnum  uses  for  QWK  production  of  .QWK  packets  and processing of
  19350.     incoming .REP packets.  These two  programs can do much more:   they can
  19351.     be used to exchange QWK messages to/from unlike BBS's or amongst  Magnum
  19352.     systems (although Magnum's AMMO/Rmail is more suitbale for Magnum-Magnum
  19353.     systems).
  19354.  
  19355.     QWK message interchange  between different systems  is by convention,  a
  19356.     manual method  but with  some work  you could  automate the process with
  19357.     terminal programs that employ a scripting language.
  19358.  
  19359.     With  the  modifications  and  enhancements  added  to  MSGLIST.EXE  and
  19360.     RJEQWK.EXE, you  will be  able to  operate a  QWK-based message  network
  19361.     either as a HOST and/or a NODE.  Either way, create a new account (logon
  19362.     as a new user with an appropriate name of your choosing), log off,  then
  19363.     log back on as Sysop.  Go  into the Sysop menu, pull up the  new account
  19364.     and change the TYPE  parm to something other  than U or M  (we suggest Q
  19365.     for QWK, but you can use anything you wish other than U or M). Give this
  19366.     account access to any msgbases/conference areas you want this account to
  19367.     have.  If operating as a Host,  have the 'node' BBS Sysop call in  under
  19368.     this new account to create a .QWK packet for himself or to upload a .REP
  19369.     packet.  If  operating as a  Node, create a  .REP packet under  this ID,
  19370.     rename the  .rep to  the appropriate  name, then  call the  Host BBS and
  19371.  
  19372.  
  19373.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19374.  
  19375.  
  19376.  
  19377.     Page  16-2                                                  Outside Mail
  19378.                  The QWK Message format: Offline Messaging, QWK 'Networking'
  19379.  
  19380.  
  19381.     upload the .REP and create/download  the .QWK packet, use RJEQWK.EXE  to
  19382.     process the .QWK packet you just downloaded from the host.  Create a new
  19383.     account as above  for each Host  or Node you  wish to exchange  messages
  19384.     with.  DO NOT CONFUSE these new accounts with the 'outside mail' account
  19385.     which you may  have created with  v8.01b of Magnum.   An 'outside  mail'
  19386.     account  is  NOT  an  account  in  which  anyone or thing is going to be
  19387.     logging on to (although its certainly possible to log on as the 'outside
  19388.     mail' account).  There is  only ONE 'outside mail' account  as specified
  19389.     in your  STARTUP.n file(s).   Because  EVERY user  name within  a Magnum
  19390.     system needs to have an ID number associated with it, people who are NOT
  19391.     in a  Magnum USER  Database do  not have  an ID  number on your system -
  19392.     that's where the 'outside mail'  account comes into play -  any messages
  19393.     to or from  someone who's not  in your USER  Database will automatically
  19394.     use the ID number of the 'outside mail' ID - there's no limit as to  how
  19395.     many  different  names  can  be  used  - they're all associated with the
  19396.     'outside mail' ID.
  19397.  
  19398.     Hints:  - RJEQWK.EXE expects its input in the WORK_DIR specified within
  19399.               the MBBSINIT.n file being used (the compiled version of the
  19400.               STARTUP.n file).
  19401.             - MSGLIST.EXE creates .QWK or .REP packets using the standard
  19402.               Magnum RJE  naming conventions (ie: Uid@n.QWK or Uid@n.REP).
  19403.               These should  be  renamed  appropriately  (they're  placed in
  19404.               \magnum\rje).
  19405.             - Refer to the file QWK.MAP (which was placed in your SES_DIR)
  19406.               for a more detailed synopsis.  This entire file (until you
  19407.               modify it) is one  large comment.
  19408.  
  19409.  
  19410.  
  19411.  
  19412.  
  19413.  
  19414.  
  19415.  
  19416.  
  19417.  
  19418.  
  19419.  
  19420.  
  19421.  
  19422.  
  19423.  
  19424.  
  19425.  
  19426.  
  19427.  
  19428.  
  19429.  
  19430.  
  19431.  
  19432.  
  19433.  
  19434.  
  19435.  
  19436.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19437.  
  19438.  
  19439.  
  19440.     Outside Mail                                                  Page  16-3
  19441.     The "Outside Mail" ID
  19442.  
  19443.  
  19444.  
  19445.     Every user on a Magnum system requires a User ID.  The exception is  the
  19446.     "Outside Mail" ID which is an ID, but does not belong to any  particular
  19447.     user.  Use of  the "Outside Mail" ID  is simply a user's  way of telling
  19448.     Magnum (or Magnum's way of telling  you) that a message to/from this  ID
  19449.     is a message to/from someone who is "outside" of this particular  Magnum
  19450.     system.  For example,  if you exchange QWK  packets with Congress (as  a
  19451.     hypothetical example), to enter a message to Sonny Bono or Newt Gingrich
  19452.     or any other person on the Congress BBS, you must enter a message to the
  19453.     "Outside Mail" ID (if you're doing this online, you'll then be  prompted
  19454.     for the actual name  of the person you're  sending the message to).   If
  19455.     you're  entering  the  message  offline  (through  a QWK reader), simply
  19456.     supply the person's name (Sonny Bono or Newt Gingrich for example); when
  19457.     Magnum processes an incoming QWK  packet with a message to/from  someone
  19458.     not in Magnum's User Database, it assigns the Outside Mail ID as the  ID
  19459.     for  that  person,  but  retains  the  person's  real name which will be
  19460.     relayed to the other (outside) system where that person really is.
  19461.  
  19462.     Its recommended you  create a NEWMSG.BBS  file (DSP_DIR) to  inform your
  19463.     users of the Outside Mail ID for message entry to users not in your user
  19464.     database.
  19465.  
  19466.     If you haven't created an OUTSIDE MAIL ID yet, you may do so by  logging
  19467.     onto your  BBS (via  the console  node) as  a new  user by  the name  of
  19468.     OUTSIDE MAIL,  then logging  off.   Write down  the ID  assigned to this
  19469.     account, and log on as the Sysop.  Go into the Sysop menu, User Database
  19470.     area; the Sysop record (ID /0) will be the first to come up.  Enter /nnn
  19471.     (where nnn is the ID number) of the Outside Mail ID that you wrote down;
  19472.     the Outside ID account will come up.  Change the Account Type  to O (for
  19473.     Outside mail), change all msg parameters  (MsgGroup,  MSG_x_AREAS,  etc)
  19474.     to allow access to ALL message areas and bases, then log off.  Shut down
  19475.     the  BBS,  change  the  OUTSIDE_MAIL_ID  to the  ID  of the outside mail
  19476.     account for all STARTUP.n file(s) and change the ALLOW_OUTSIDE_MAIL parm
  19477.     to N. Compile (MAKEMBBS.EXE) and then restart your BBS.  You are now set
  19478.     up for outside mail exchange.
  19479.  
  19480.     The account TYPE for any user record can be any character or letter  you
  19481.     wish.  Up  until Magnum v8.xx,  only two account  types existed:   U for
  19482.     USER accounts, and M for MagnumMAIL accounts.  These two types are still
  19483.     in use and  always will be.   However, in  preparation for outside  mail
  19484.     exchange with other mail formats, you can now assign an account type  of
  19485.     other than U or M. For example,  to exchange mail with a QWK 'net',  you
  19486.     might assign a certain account  for that purpose and classify  it's type
  19487.     as Q (for  QWK), or I  (for Internet).   Use letters such  as Q for  QWK
  19488.     'net'  accounts,  and  I  for  Internet.   This release will support QWK
  19489.     'netmail'.  If  an account other  than U or  M logs on,  Magnum will now
  19490.     look in  your SESSION  DIRectory for  (and display)  the file ACCTTYPE.x
  19491.     (where 'x' is  the account type)  if it exists.   This file  can contain
  19492.     MILC  commands  to  start  an  RJE  or  child  (door) process to perform
  19493.     whatever it  is you  wish.   This file  displays after  logon and BEFORE
  19494.     entry into the main menu.  To  set up a QWK 'net' account, you  must log
  19495.     on via the console as a new user, providing a mnemonic name such as "QWK
  19496.     GLOBALNET"  or  "GLOBALNET  QWK"  for  example.    Choose a default xfer
  19497.  
  19498.  
  19499.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19500.  
  19501.  
  19502.  
  19503.     Page  16-4                                                  Outside Mail
  19504.                                                        The "Outside Mail" ID
  19505.  
  19506.  
  19507.     protocol such as  Zmodem.  After  the new account  has been established,
  19508.     log off and then log on as Sysop (/0).  Go into the Sysop menu and  pull
  19509.     up the user record for the new account and change the account TYPE to Q.
  19510.     You should also  create or modify  the display file  NEWMSG.BBS (in your
  19511.     DISPLAY DIRectory)  to inform  your users  of ID's  to/from outside mail
  19512.     networks (ie:  enter a msg to ID /nnn for GLOBALNET, /yyy for  ALTERNET,
  19513.     etc).
  19514.  
  19515.     NOTE: Account types other than U (user) will not invoke the standard
  19516.           HELLO?.BBS files or other  display files prior to entering  the
  19517.           main menu  after logon,  nonstop display  is automatic,  and PRESS
  19518.           ENTER prompts are bypassed.
  19519.  
  19520.  
  19521.  
  19522.  
  19523.  
  19524.  
  19525.  
  19526.  
  19527.  
  19528.  
  19529.  
  19530.  
  19531.  
  19532.  
  19533.  
  19534.  
  19535.  
  19536.  
  19537.  
  19538.  
  19539.  
  19540.  
  19541.  
  19542.  
  19543.  
  19544.  
  19545.  
  19546.  
  19547.  
  19548.  
  19549.  
  19550.  
  19551.  
  19552.  
  19553.  
  19554.  
  19555.  
  19556.  
  19557.  
  19558.  
  19559.  
  19560.  
  19561.  
  19562.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19563.  
  19564.  
  19565.  
  19566.     Internet E-mail                                               Page  17-1
  19567.     General Info and Setup
  19568.  
  19569.  
  19570.                                 INTERNET E-MAIL
  19571.                                 ---------------
  19572.  
  19573.     To set up your Magnum BBS system for Internet E-mail capabilities, you
  19574.     must first have:
  19575.  
  19576.       1) An Internet Service Provider (we recommend "Info Access
  19577.          Technologies", also known as Holonet).  Voice: (510) 704-0160,
  19578.          Modem: (510) 704-1058.
  19579.  
  19580.       2) UUCP Domain Name Service (this takes about 3 weeks for your
  19581.          Internet Service Provider to set up).  UUCP Domain Name Service
  19582.          means that your BBS will be known as somename.com (for us, its
  19583.          gilmore.com).  The users on your BBS will be known as
  19584.          someuser@somename.com (using our site as an example:
  19585.          joe@gilmore.com, susan@gilmore.com, postmaster@gilmore.com, etc).
  19586.  
  19587.       3) Our optional MAGUUCP.EXE program.
  19588.  
  19589.     Once you have the above set up, you will now be able to implement the
  19590.     Internet E-mail capabilities of Magnum BBS as follows:
  19591.  
  19592.       1) First, you'll need our optional MAGUUCP.EXE terminal program.  This
  19593.          is NOT included with your Magnum BBS system and is available for
  19594.          purchase from Gilmore Systems.
  19595.  
  19596.       2) If you haven't set up an "OUTSIDE MAIL" account, you will need to
  19597.          log onto the system (from the console) using OUTSIDE for 'first
  19598.          name' and MAIL for 'last name' (don't use a middle name).  Once the
  19599.          system has added 'OUTSIDE MAIL' as a new user, log off!  Jot down
  19600.          the ID number for the new OUTSIDE MAIL account.
  19601.  
  19602.          NOTE: If you already have an OUTSIDE MAIL account set up, skip to
  19603.          step 3.
  19604.  
  19605.      2a) Log on as Sysop.  Go into the Sysop menu, USER Database Area.  Pull
  19606.          up the account for the OUTSIDE MAIL ID that you just created.
  19607.          Change the TYPE parm (2nd line from top of screen) to type O (O is
  19608.          for OUTSIDE MAIL).  Increase the security level to that which has
  19609.          access to all of the message bases and message areas that you wish
  19610.          this account to have access to.  Change the MSG_?_AREAS (near
  19611.          bottom of screen) accordingly.  If you have the Extended Msgbase
  19612.          module and are using MSG GROUPS, change the MSGGRP parm
  19613.          accordingly.
  19614.  
  19615.      2b) Shut down your BBS (* endnow) and edit all of your STARTUP.n files
  19616.          such that the OUTSIDE_MAIL_ID: parameter reflects the id number
  19617.          of this new OUTSIDE MAIL account.  Example: if your OUTSIDE MAIL
  19618.          account id is /1407, then you should provide this as the parm as
  19619.          follows:   OUTSIDE_MAIL_ID: /1407
  19620.  
  19621.       3) Shut down your BBS (* endow) and edit all of your STARTUP.n files
  19622.          as follows (changing the following parms):
  19623.  
  19624.  
  19625.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19626.  
  19627.  
  19628.  
  19629.     Page  17-2                                               Internet E-mail
  19630.                                                       General Info and Setup
  19631.  
  19632.  
  19633.  
  19634.             INTERNET_DOMAIN_NAME: gilmore.com   (this will be YOUR domain
  19635.                                                  name, like ibm.com or
  19636.                                                  xyzcorp.com).
  19637.  
  19638.             INTERNET_TIMEZONE: PST              (PST=Pacific Standard Time,
  19639.                                                  PDT=Pacific Daylight Time,
  19640.                                                  EST=Eastern Standard Time,
  19641.                                                  MDT=Mountain Daylight Time,
  19642.                                                  CST=Central Standard Time,
  19643.                                                  etc).
  19644.  
  19645.             ALLOW_OUTSIDE_MAIL: Y
  19646.  
  19647.  
  19648.          Save the changes and recompile the STARTUP files (makembbs.exe).
  19649.          Restart your BBS.
  19650.  
  19651.  
  19652.       4) Log on (* logon) as a new user using the account name EMAIL ACCOUNT
  19653.          (EMAIL for first name, ACCOUNT for last name).
  19654.          After this new account id is added, log off!
  19655.          Log on (* logon) As SYSOP (/0) and go into the Sysop Menu, USER
  19656.          Database Area.  Pull up the account for the id number of the
  19657.          EMAIL_ACCOUNT.
  19658.          Change the account TYPE (2nd line from type) to E (for E-MAIL).
  19659.          Change MSG_?_AREAS according to the areas you wish this account to
  19660.          have access to.  Change the MSGGRP (If you're using GROUPS and you
  19661.          have the Extended MsgBAse Module) accordinly if desired.
  19662.          IMPORTANT: Change the LEVEL (security level) to that of the
  19663.          security level of the SYSOP_MAIL_LVL parm in your STARTUP files.
  19664.          This is important because this account needs to be able to read
  19665.          PRIVATE mail (this is only allowed with a security level of what
  19666.          you have for SYSOP_MAIL_LVL or greater).  You can even give it a
  19667.          level to match that of the Sysop if you wish.  This is NOT a user
  19668.          account, its an EMAIL account!  Once the changes are made, log off.
  19669.  
  19670.       5) If you haven't done so already (and assuming you have the optional
  19671.          MAGUUCP.EXE program), set up MAGUUCP.EXE.  Make note of the
  19672.          directory name you're installing this program into (ie: d:\maguucp)
  19673.          Follow the directions supplied with MAGUUCP.EXE.
  19674.          NOTE: SEE STEP 9 (below) FOR OUR SETUP.
  19675.  
  19676.       6) In your PGM_DIR (ie: d:\magnum\pgm_dir), create a command file by
  19677.          the name of INTERNET.CMD with your text editor.  The contents of
  19678.          the file are:
  19679.  
  19680.              d:
  19681.              cd \magnum\pgm_dir
  19682.              d:\magnum\rje_dir\msglist mbbsinit.3 NNN * u y * * email.out e*
  19683.              cd \maguucp
  19684.              maguucp #NN
  19685.              cd \magnum\pgm_dir
  19686.  
  19687.  
  19688.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19689.  
  19690.  
  19691.  
  19692.     Internet E-mail                                               Page  17-3
  19693.     General Info and Setup
  19694.  
  19695.  
  19696.              emailin mbbsinit.3 NNN d:\magnum\ses_dir\email.prm
  19697.              echo N active >tmp.ace
  19698.              exit
  19699.  
  19700.        - In the above, the first line is the drive letter of the drive that
  19701.          your Magnum BBS is installed on (your \magnum\pgm_dir).
  19702.        - The second line changes the directory to your \magnum\pgm_dir.
  19703.        - The third line executes the msglist program.  The NNN parm should
  19704.          be the ID number (without the / character) of the OUTSIDE MAIL
  19705.          account that you created in step 2.  If your drive letter is not
  19706.          d:, change it to the drive letter that your \magnum\rje_dir is on.
  19707.          We're assuming that you're using node 3, therefore we've supplied
  19708.          mbbsinit.3 on this line.  Change the 3 to whatever node you'll be
  19709.          using for your MAGUUCP program.
  19710.        - The fourth line changes to the directory that you installed your
  19711.          MAGUUCP program in (assuming same drive letter as that of your
  19712.          Magnum system... if different, insert a line before this containing
  19713.          the driver letter that its on followed by a colon [ ie: c: ] ).
  19714.        - The fifth line invokes the MAGUUCP program to call your Internet
  19715.          Service Provider (replace the NN with the dialing directory entry
  19716.          for your Internet Service Provider; if its entry #4 for example,
  19717.          you'd supply: maguucp #4).  Make sure you've set up your script
  19718.          file for MAGUUCP.NN (or MAGUUCP.4 using our example) as provided
  19719.          in the MAGUUCP documentation.
  19720.        - The sixth line changes back to your \magnum\pgm_dir (assumes that
  19721.          your \magnum\pgm_dir is on the same drive as \maguucp; if it isn't
  19722.          insert a line containing the drive letter of your \magnum\pgm_dir
  19723.          followed by a colon [ ie: c: ] ).
  19724.        - The seventh line processes incoming email and places it in the
  19725.          proper areas of your Magnum BBS system.  Change the NNN to reflect
  19726.          the id number (just the number, no / character) of the OUTSIDE
  19727.          MAIL account (same as in line 3).  If the drive letter of your
  19728.          \magnum\ses_dir is not d:, change it to the drive letter that your
  19729.          \magnum\ses_dir is on.  Create the file EMAIL.PRM in your
  19730.          \magnum\ses_dir with the following contents:
  19731.              headers: n
  19732.              msgbase: 0
  19733.              area: a
  19734.          Where the 'headers:' parm can be one of N (no headers), Y (all
  19735.          headers), or P (partial headers).  If you choose N, incoming mail
  19736.          text will look like it always does.  If you choose Y, incoming mail
  19737.          text will include all of the headers including routing information
  19738.          of all the systems that the mail went through before arriving at
  19739.          your system.  If you chhose P, then all headers OTHER than routing
  19740.          information will be shown.
  19741.        - The eigth line restarts the node that was shut down (made inactive)
  19742.          in order to use the modem for MAGUUCP.  Replace the N with the node
  19743.          number of the node that was shut down (made inactive).
  19744.        - The ninth (last) line exits the command file.
  19745.  
  19746.       7) Modify your \magnum\pgm_dir\mbbs.ace file (or create it if you
  19747.          don't have one) with the following commands (we're going to use
  19748.          node 3 for the node to be shut down in our example, you should
  19749.  
  19750.  
  19751.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19752.  
  19753.  
  19754.  
  19755.     Page  17-4                                               Internet E-mail
  19756.                                                       General Info and Setup
  19757.  
  19758.  
  19759.          replace this with the node number you wish to use for your system).
  19760.          We're also assuming that your system will be calling your Internet
  19761.          Service Provider at 02:00 (2 AM) every day:
  19762.  
  19763.              0123456,01:00,3 shutdown 02:00
  19764.              0123456,02:01,"start internet.cmd",nowait
  19765.  
  19766.          If you wish to have your system call more than once/day, duplicate
  19767.          the above two lines changing 01:00 to one hour before wishing to
  19768.          shut down the node, change 02:00 to the time you want the node
  19769.          shut down, change 02:01 to the time you want maguucp started.
  19770.  
  19771.       8) In your STARTUP files prior to step 3 above, if your parm to the
  19772.          ALLOW_OUTSIDE_MAIL was N, you'll need to write a .mex program to
  19773.          change the users in your USER database to allow them access to
  19774.          outside mail.  The .mex program should be created in your
  19775.          \magnum\pgm_dir with a name of UPDT.MEX (or something similar).
  19776.          The contents of the file would be:
  19777.  
  19778.              #CONFIG_FILE: mbbsinit.1
  19779.              #LOG_FILE: nul
  19780.              #DATABASE: user
  19781.  
  19782.              #START
  19783.  
  19784.              @outside_mail = true
  19785.  
  19786.              #STOP
  19787.  
  19788.          The above simple .mex program will change all users to allow them
  19789.          access to outside mail.  If you wish to have only a certain
  19790.          security level or higher to have access (say, level 100 for
  19791.          example), change the program statement (between #START and #STOP)
  19792.          to:
  19793.                if(@level >= 100) {
  19794.                   @outside_mail = true
  19795.                   }
  19796.  
  19797.          Run the program:   MBBSEXEC UPDT
  19798.  
  19799.  
  19800.       9) For setting up the MAGUUCP scripts, first make certain you've made
  19801.          a dialing directory entry for your Internet Service Provider.  Lets
  19802.          Assume this is entry #4.  Create the file MAGUUCP.4 in the same
  19803.          directory that your MAGUUCP.EXE program resides in.  The contents
  19804.          of MAGUUCP.4 will look similar to the following (assuming you're
  19805.          using Holonet as your Internet Service Provider):
  19806.  
  19807.              set caller_hostname gilmore
  19808.              set called_hostname holonet
  19809.              set workdir d:\magnum\work_dir\3
  19810.              set uucp_protocol g
  19811.              whenever "CONNECT" send "\13\~\~holonet\13"
  19812.  
  19813.  
  19814.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19815.  
  19816.  
  19817.  
  19818.     Internet E-mail                                               Page  17-5
  19819.     General Info and Setup
  19820.  
  19821.  
  19822.              whenever "HoloNet Member Name" send "cgilmore\13"
  19823.              waitfor "assword:" send "mypassword\13"
  19824.              waitfor "erminal" send "uucp\13"
  19825.  
  19826.        - In line one above, the caller_hostname is set to our UUCP domain
  19827.          name (without the .com).
  19828.        - The second line sets the called_hostname to holonet (the Internt
  19829.          Service Provider).
  19830.        - The third line matches the work_dir defined in the STARTUP.3 file
  19831.          because we've used mbbsinit.3 (the compiled startup.3 file) in our
  19832.          example in step 6 above.  All incoming and outgoin email temporary
  19833.          storage is held in this work directory.
  19834.        - The fourth line sets the UUCP protocol to g.  Note that MAGUUCP
  19835.          currently has 6 of the UUCP protocols coded:
  19836.              e = not supported by Holonet, not tested as of this writing.
  19837.              f = supported by Holonet and nearly every other Internet
  19838.                  Service Provider.
  19839.              g = the standard (and default) uucp protocol supported by all
  19840.                  uucp packages.
  19841.              t = supported by Holonet if using uucp-1.06 as your terminal
  19842.                  type.
  19843.              T = Same as t but for uucp versions less than 1.06 (ie: if you
  19844.                  supply uucp as your terminal type instead of uucp-1.06).
  19845.                  Note that uucp-1.06 works with Holonet, but may not work
  19846.                  with other providers.  If you have a different provider,
  19847.                  use uucp instead of uucp-1.06.
  19848.              y = Supported by Holonet using uucp-1.06.  This is a NEW
  19849.                  protocol, so your provider may not support this yet).
  19850.          Note that when we refer to uucp-1.06 above, it refers specifically
  19851.          to a UUCP implementation known as Taylor UUCP v1.06.
  19852.        - The fifth line looks for the CONNECT string from your modem (make
  19853.          sure you're using Verbose modem codes [ ie: AT V1 ] ) and sends
  19854.          holonet as the name to connect to.  This line is not needed if
  19855.          you're calling Holonet directly at their Berkely, CA number.  It
  19856.          is needed if you're calling via a local access telephone number.
  19857.        - The sixth line answers the "Holonet Member Name" prompt with
  19858.          cgilmore.  Change this to your member name (your Internet Service
  19859.          Provider will provide you with one).
  19860.        - The seventh line answers the "password" prompt with your password.
  19861.          Change the mypassword string to your password.  Note that the
  19862.          beginning P of Password is intentionally absent because it may
  19863.          appear in upper or lowercase, and we need to match this exactly.
  19864.        - The eigth (last) line answers the "terminal" prompt with the type
  19865.          of terminal you wish.  Note that the beginning T of Terminal is
  19866.          intentionally absent because it may appear in upper or lowercase,
  19867.          and we need to match this exactly.
  19868.  
  19869.          The rest will be automatically handled by MAGUUCP, and when MAGUUCP
  19870.          finishes, the INTERNET.CMD file which started it will then start
  19871.          the EMAILIN.EXE program to process the incoming mail.
  19872.  
  19873.  
  19874.     USING E-MAIL:
  19875.  
  19876.  
  19877.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19878.  
  19879.  
  19880.  
  19881.     Page  17-6                                               Internet E-mail
  19882.                                                       General Info and Setup
  19883.  
  19884.  
  19885.     ------------
  19886.  
  19887.     Users on your Magnum BBS can enter messages to anyone on the Internet by
  19888.     entering a new message (when the prompt asks for the addressee (ie: /ID)
  19889.     they may either enter the id number (/nnn) of the OUTSIDE MAIL account,
  19890.     or the word EMAIL.  Either way result in the following prompt:
  19891.        MAIL TO "OUTSIDE MAIL" (y/n) -> _
  19892.     When they verify the above promopt with a Y response, the system will
  19893.     then issue the prompt:
  19894.        Name of Addressee => _
  19895.     They can now supply any Internet e-mail address.  To reach a user on
  19896.     CompuServe for example, they con supply 11111.333@compuserve.com (where
  19897.     11111.333 is the user's compuserve id who they're trying to reach).
  19898.     All incoming e-mail is placed into one area of one messagebase as you
  19899.     specified in step 6 above.  Depending on the parms you give to the
  19900.     msglist.exe program, mail can be sent from any msgbase/area on the
  19901.     system, but we suggest you have your users limit internet e-mail to the
  19902.     msgbase and area that you speficied in step 6 above.
  19903.  
  19904.     As of this writing, Internet E-mail is supported.  This includes
  19905.     messages entered on your system with "attached files", and any incoming
  19906.     messages with "UU Encoded" files (they'll automatically be converted to
  19907.     "attached files" when added to your message base).  Note that you'll
  19908.     need OS/2 versions of uudecode.exe and uuencode.exe in your system path
  19909.     (you could place these in your \magnum\pgm_dir).
  19910.  
  19911.     As of this writing, USENET NEWSGROUPS are NOT supported, and will be
  19912.     ignored and discarded if any news messages come in via MAGUUCP.
  19913.  
  19914.     Future releases will support UseNet NewsGroups.
  19915.  
  19916.     NOTE: if you're having any problems with the 'g' protocol, try using
  19917.           one of the other protocols such as 't' (or 'T') or 'f'.
  19918.  
  19919.  
  19920.  
  19921.  
  19922.  
  19923.  
  19924.  
  19925.  
  19926.  
  19927.  
  19928.  
  19929.  
  19930.  
  19931.  
  19932.  
  19933.  
  19934.  
  19935.  
  19936.  
  19937.  
  19938.  
  19939.  
  19940.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  19941.  
  19942.  
  19943.  
  19944.     Internet E-mail                                               Page  17-7
  19945.     EMAILIN.EXE parameters
  19946.  
  19947.  
  19948.     EMAILIN.EXE:
  19949.     -----------
  19950.  
  19951.     This program processes incoming Internet e-mail (from MAGUUCP.EXE) and
  19952.     places it into the appropriate Magnum BBS message base/area.
  19953.     Any messages containing uuencoded files will be automatically uudecoded
  19954.     and converted to an 'attached file' (requires an OS/2 version of
  19955.     uudecode.exe to be in your system path).  Note that MAGUUCP.EXE is an
  19956.     optional module, and is not included with Magnum BBS.
  19957.  
  19958.     The Syntax of this program is:  EMAILIN  mbbsinit.x  id  parmfile
  19959.     Where:-EMAILIN is the EMAILIN.EXE program.
  19960.           -mbbsinit.x is the complete filespec of the mbbsinit.x file to
  19961.            use.
  19962.            NOTE: x is the node# -- make certain that this mbbsinit.x file's
  19963.                    WORK_DIR parm matches that of the WORKDIR parm of your
  19964.                    MAGUUCP.n file used for dialing your Internet Service
  19965.                    Provider!  This is the work directory that EMAILIN.EXE
  19966.                    will look for incoming mail (MAGUUCP.EXE places incoming
  19967.                    mail into the WORKDIR parm specified in your MAGUUCP.n
  19968.                    file).
  19969.           -id is the id number for the account running this program.
  19970.           -parmfile is the complete filespec of the parameter file
  19971.            (email.prm); we suggest placing (creating) this file in your
  19972.            \magnum\ses_dir.
  19973.  
  19974.     The parameter file (email.prm) is an ASCII text file which you create
  19975.     with a text editor.  The format of the file is as follows:
  19976.  
  19977.        - Any blank lines are ignored.
  19978.        - Any line starting with the ; (semicolon) character is a comment
  19979.          line.
  19980.        - Any ; (semicolon character anywhere on a line starts a comment).
  19981.        - All comments end at the end of the physical text line.
  19982.  
  19983.        MSGBASE: 0      ; indicate which msgbase to place incoming mail into.
  19984.        AREA: E         ; indicate which area of above msgbase for incoming
  19985.                          mail.
  19986.        HEADERS: N      ; parm can be one of: N  Don't save header info
  19987.                                                 (default)
  19988.                                              Y  Save header info in msg text
  19989.                                              P  Partial save of header info
  19990.        LISTSERV: info = d:\somedir\infofile.txt
  19991.        LISTSERV: help = d:\somedir\helpfile.txt
  19992.        ALIAS: review.board = 12
  19993.        ALIAS: votes = 256
  19994.  
  19995.  
  19996.     The MSGBASE, AREA and HEADERS keywords are mandatory.  All others are
  19997.     optional.
  19998.  
  19999.     Up to 250 LISTSERV entries can be accomodated.  The way a LISTSERV entry
  20000.     works is as follows:
  20001.  
  20002.  
  20003.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20004.  
  20005.  
  20006.  
  20007.     Page  17-8                                               Internet E-mail
  20008.                                                       EMAILIN.EXE parameters
  20009.  
  20010.  
  20011.  
  20012.         Using the above example (LISTSERV: info = d:\somename\infofile.txt),
  20013.         incoming mail addressed to info@company.com (the @company.com
  20014.         portion is stripped out, making just "info") is checked against your
  20015.         LISTSERV entries in your parm file.  If a match on "info" is found,
  20016.         it sends the filespec (that appears on the right of the "=") as a
  20017.         message to the sender (requester) of the message.  If you wish to
  20018.         attach a file as part of the message, you may uuencode the file and
  20019.         concatenate it to the end of your message.  This serves as an
  20020.         automated response system, where (by example) anywone wishing
  20021.         information about your company may send mail to info@yourbbs.com and
  20022.         automatically get a response back without you having to worry about
  20023.         it.  A log of these automated responses will be kept under the
  20024.         filename of "listserv.log" in your SYSOUT directory.
  20025.  
  20026.     Up to 500 ALIAS entries can be accomodated. The way an ALIAS entry works
  20027.     is as follows:
  20028.  
  20029.         Using the above example (ALIAS: anonymous = 4), incoming mail
  20030.         addressed to anonymous@company.com (the @company.com portion is
  20031.         stripped out, making just "anonymous") is checked against your ALIAS
  20032.         entries in your parm file.  If a match on "anonymous" is found, it
  20033.         replaces it with the id number (that appears on the right of the
  20034.         "=") as a message to id4@company.com (using the above example).
  20035.         Although the users of your BBS can change their own name using the
  20036.         '[E]nivronment' section (#27 of the Environment menu), they may also
  20037.         request that they be knwon as something else as well (its up to the
  20038.         Sysop to supply alias names via the parm file).  This way, any user
  20039.         can be known by multiple names.
  20040.         NOTE: Only Incoming mail can be routed to an alias name.  Outgoing
  20041.               mail (including a reply to a message addressed to an alias
  20042.               name) will always bear the user's real name (ie: that supplied
  20043.               by Magnum [ id4@company.com ], or by the user's Environment
  20044.               name  [ jsmith@company.com ] ). The purpose of alias names are
  20045.               for users to submit mail to, but should not expect replies.
  20046.               Uses of alias names are for people to submit reports to,
  20047.               votes, grievances, or any other type of mail where the person
  20048.               using the alias name does not wish to reveal who they really
  20049.               are.  People using alias names should NOT reply to incoming
  20050.               mail (any replies will reveal their real name).
  20051.  
  20052.  
  20053.  
  20054.  
  20055.  
  20056.  
  20057.  
  20058.  
  20059.  
  20060.  
  20061.  
  20062.  
  20063.  
  20064.  
  20065.  
  20066.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20067.  
  20068.  
  20069.  
  20070.     General and Closing Remarks                                   Page  18-1
  20071.     General Remarks
  20072.  
  20073.  
  20074.  
  20075.     If you're  using either  the Extended  FileBase or  the Extended MsgBase
  20076.     module(s), be aware that each user's pointer file(s) are kept in a ZIP'd
  20077.     file in the USER_DIR by the name  of dpID.zip where ID is their user  id
  20078.     number.    Within  these  dpID.zip  file(s) are the following compressed
  20079.     pointer file(s):  mpID.ptr and/or fpID.ptr.  Uncompressed sizes of these
  20080.     file are:
  20081.  
  20082.         mpID.ptr = 66300 bytes
  20083.         fpID.ptr = 27540 bytes
  20084.  
  20085.       Total if using both extended msg and file base modules: 93840 bytes.
  20086.  
  20087.     These pointer  files are  uncompressed for  a user  during their  online
  20088.     session (up to 93840 bytes), and then compressed back into the  dpID.zip
  20089.     file after their session ends.   The uncompressed sizes given  above are
  20090.     constant regardless  of whether  you're using  1, 2,  or ALL  of the 255
  20091.     extended bases.
  20092.  
  20093.     IMPORTANT: The amount of disk space the dpID.zip file takes up depends
  20094.                solely on the version of the ZIP program you use.  For
  20095.                example, the original PKZIP2.EXE compresses these files down
  20096.                to about 1.5 Kbytes during our testing.  However, the latest
  20097.                ZIP.EXE from the InfoZip people compresses these same files
  20098.                down to about 400 bytes (nearly 4 times less space used than
  20099.                PKZIP2.EXE).  This saves about 1100 bytes per user, very
  20100.                significant!  During our testing using 3 extended filebases
  20101.                and 1 extended msgbase, the average compressed (zip'd) size
  20102.                was 233 bytes.
  20103.  
  20104.                You can obtain the latest version of InfoZip's ZIP.EXE and
  20105.                UNZIP.EXE by downloading the following files from our
  20106.                FileBase 0:
  20107.  
  20108.                     UNZ512X2.EXE  -  Self-Extracting File (when finished,
  20109.                                      copy UNZIP.EXE to your EXT_DIR
  20110.                     ZIP201X2.ZIP  -  Unzip with UNZIP.EXE above (when
  20111.                                      finished, copy ZIP.EXE to your EXT_DIR
  20112.  
  20113.                Note that the above are 32-bit programs, meaning they will
  20114.                NOT run under OS/2 1.x, you will need OS/2 2.x or 3.x (Warp).
  20115.                If you created a COMPRESS.LST file in your SES_DIR, you will
  20116.                need to modify the .ZIP: entry as follows (create the file
  20117.                with the following contents if you do not have a COMPRESS.LST
  20118.                file):
  20119.  
  20120.                       .ZIP:
  20121.                           C=ZIP.EXE -u %s
  20122.                           D=UNZIP.EXE -oqjC %s
  20123.                           L=UNZIP.EXE -v %s
  20124.                           T=UNZIP.EXE -t %s
  20125.                           K=ZIP.EXE -z %s
  20126.  
  20127.  
  20128.  
  20129.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20130.  
  20131.  
  20132.  
  20133.     Page  18-2                                   General and Closing Remarks
  20134.                                                              General Remarks
  20135.  
  20136.  
  20137.                Note that upper/lowercase is important and must appear
  20138.                exactly as above.
  20139.  
  20140.                When logging on locally (via the console), or snooping on a
  20141.                remote session, you may see an error message on your screen
  20142.                "SYS1816: The batch file cannot be found".  This is normal,
  20143.                and will NOT be seen by your remote callers.  MSESSION.EXE
  20144.                creates a .cmd file and calls it, the command file deletes
  20145.                itself when finished, but OS/2 thinks there may be another
  20146.                command in the file... since the file deleted itself, OS/2
  20147.                emits the SYS1816 message.
  20148.  
  20149.  
  20150.  
  20151.  
  20152.  
  20153.  
  20154.  
  20155.  
  20156.  
  20157.  
  20158.  
  20159.  
  20160.  
  20161.  
  20162.  
  20163.  
  20164.  
  20165.  
  20166.  
  20167.  
  20168.  
  20169.  
  20170.  
  20171.  
  20172.  
  20173.  
  20174.  
  20175.  
  20176.  
  20177.  
  20178.  
  20179.  
  20180.  
  20181.  
  20182.  
  20183.  
  20184.  
  20185.  
  20186.  
  20187.  
  20188.  
  20189.  
  20190.  
  20191.  
  20192.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20193.  
  20194.  
  20195.  
  20196.     General and Closing Remarks                                   Page  18-3
  20197.     Closing Remarks
  20198.  
  20199.  
  20200.     Congratulations!   You've just  completed reading  the documentation for
  20201.     the Gilmore Systems  Magnum BBS System  for OS/2.   We hope that  you'll
  20202.     have many years of ongoing satisfaction with this product.  If you  have
  20203.     any problems, please leave them in the form of a "[C]omment to Sysop" or
  20204.     message on our BBS at 818/782-6290, or e-mail us (sysop@gilmore.com) and
  20205.     we  will  have  a response for you usually within 24 hours (weekends and
  20206.     some holidays excluded).
  20207.  
  20208.     ALL TECHNICAL SUPPORT QUESTIONS AND PROBLEMS WILL BE HANDLED EXCLUSIVELY
  20209.     VIA OUR BBS  AT (818) 782-6290 OR VIA E-MAIL (SYSOP@GILMORE.COM). IF YOU
  20210.     CALL ON OUR  VOICE LINE  WITH A  TECHNICAL SUPPORT  QUESTION OR  PROBLEM
  20211.     WHICH  REQUIRES US  TO CALL  YOU BACK, WE WILL CALL YOU BACK COLLECT!
  20212.     HAVE YOUR SERIAL NUMBER READY (YOU WILL BE ASKED FOR IT).
  20213.  
  20214.     We've set up a special section  on our BBS for Magnum Sysops  (file area
  20215.     'S' and message conference area 'S').  This will enable you to  converse
  20216.     with other Magnum Sysops, exchange ideas and information, ask questions,
  20217.     etc.  We encourage regular checking in from time to time.  Other  Sysops
  20218.     have  already  wrote  some  external  programs  for Magnum which they've
  20219.     uploaded (you can download these  anytime).  If you wish  information on
  20220.     the record layouts  for Magnum's databases,  please inquire within  - we
  20221.     encourage  3rd  party  development,  but  do  not  support it (3rd party
  20222.     developers must support their own products).
  20223.  
  20224.     So far, Magnum BBS will run with almost any modem.  Your modem should be
  20225.     capable of  hardware flow  control (CTS/RTS)  and your  modem cable must
  20226.     have RS-232  pin numbers  4 and  5 wired  to carry  these signals - some
  20227.     cables are not wired this way.  This is especially the case when the DTE
  20228.     baudrate (the speed  of computer to  modem) is higher  than that of  the
  20229.     modem's DCE  baudrate (the  speed of  the modem  over the  phone lines).
  20230.     Some internal  modems force  the carrier  signal high  (constantly on) -
  20231.     your modem needs to report carrier to Magnum in a realtime fashion  (the
  20232.     true state of the carrier signal - for modems with the "AT" command set,
  20233.     this is  usually accomplished  with the  &C1 command).   Your modem must
  20234.     also be configured to respond to  the DTR signal - in other  words, when
  20235.     Magnum closes  the comport,  your modem  should respond  by dropping the
  20236.     line - if your modem uses the  "AT" command set, see the &Dn command  in
  20237.     your modem's user manual.  For modems with the "AT" command set, see the
  20238.     S10  register  in  order  to  make  your  modem drop the connection when
  20239.     carrier is lost.
  20240.  
  20241.     Keeping things  in perspective,  your modem  is your  computer and BBS's
  20242.     only  link  to  the  outside  world.    It is important that you not cut
  20243.     corners in this arena.  Magnum BBS and your modem(s) have a  synergistic
  20244.     relationship and we suggest  you use a name  brand modem which has  been
  20245.     successfully used in the public arena for a long time.
  20246.  
  20247.     See  the  file  MODEMS.TXT  in  the  root directory of your distribution
  20248.     diskette for information on setting up some of the more popular modems.
  20249.  
  20250.     Also on your distribution disk, is a file called MAGNUM.H which are  the
  20251.     structure layouts  (in C)  of the  databases used  by Magnum (USER, MSG,
  20252.     RJE, FILE, UTILIZ).   This file  is NOT included  with the demo  release
  20253.  
  20254.  
  20255.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20256.  
  20257.  
  20258.  
  20259.     Page  18-4                                   General and Closing Remarks
  20260.                                                              Closing Remarks
  20261.  
  20262.  
  20263.     (the database structures are different).  With this information you  may
  20264.     write your own programs to manipulate the databases used by Magnum.   By
  20265.     all means, give us  a call if you  have ANY questions or  concerns about
  20266.     accessing the data in these databases.  Should you write programs  which
  20267.     actually WRITE to  or APPEND to  these databases, be  sure to adhere  to
  20268.     standard record-locking conventions.  If you'll be appending to the USER
  20269.     database, give us a call for important information you'll need to know -
  20270.     it's not  as simple  as just  "appending" a  record (all other databases
  20271.     EXCEPT the USER database are straight-forward if appending).
  20272.  
  20273.                              IMPORTANT CONSIDERATIONS:
  20274.                              ------------------------
  20275.  
  20276.     ALWAYS, ALWAYS have a backup copy of your databases prior to running the
  20277.     MBBSEXEC.EXE program.  Any errors (ie:  typos, logic, etc) in your  .MEX
  20278.     files can destroy your databases!  We're running our system such that an
  20279.     "ACE"  command  starts  a  .cmd  file  which  copies  the databases to a
  20280.     different  directory  prior  to  running  the  mbbsexec.exe  program for
  20281.     maintenance.  If you're writing  a new '.mex' file, you  should consider
  20282.     setting up a test system to test it out with - do not experiment on your
  20283.     production system without full backups of the databases!
  20284.  
  20285.     Magnum uses  variables @Z0,  @Z1, @N0  and @N1  internally when invoking
  20286.     external   programs   such   as   pkzip2.exe,   pkunzip2.exe,  arc2.exe,
  20287.     chkansi.exe, etc... bear this  in mind when using  the @R1, @Fx and  @Qx
  20288.     MILC commands.
  20289.  
  20290.     Be advised that the RJE menu's [K]ill option will only kill the  program
  20291.     it started - not any children of that program.
  20292.  
  20293.               IMPORTANT INFORMATION ABOUT COM*.SYS DEVICE DRIVERS:
  20294.               ---------------------------------------------------
  20295.  
  20296.       If you're running OS/2 SE 1.2 or OS/2 EE 1.2 on an IBM PS/2 machine:
  20297.  
  20298.     The COM02.SYS device  driver may or  may not work  with your version  of
  20299.     OS/2 1.2.  To  find out if your  COM02.SYS driver is the  proper one for
  20300.     your system,  execute the  following command  (comes with  the Operating
  20301.     System):
  20302.  
  20303.           SYSLEVEL.EXE
  20304.  
  20305.     After a couple of minutes, you'll  get the CSD level.  For  OS/2 version
  20306.     1.2 SE, the CSD level should be XR04073  or  greater.  For  OS/2 version
  20307.     1.2 EE, the CSD level should be XR04084 or greater.
  20308.  
  20309.     If your CSD level  is less than the  above, the COM02.SYS device  driver
  20310.     for your operating system is defective.  You can correct the problem  by
  20311.     either using the COM02.SYS device  driver supplied with OS/2 ver  1.1 or
  20312.     by updating your system to the latest CSD level.  Unfortunately, IBM  is
  20313.     the only  company which  supplies CSD  (customer service  disks) updates
  20314.     which can be obtained by contacting your local authorized IBM dealer.
  20315.  
  20316.  
  20317.  
  20318.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20319.  
  20320.  
  20321.  
  20322.     General and Closing Remarks                                   Page  18-5
  20323.     Closing Remarks
  20324.  
  20325.  
  20326.     OS/2 1.2 EE CSD levels WR04097  and WR04098 has a problem in  the kernel
  20327.     relating  to  auto-buffering  regardless  of  whether your UART supports
  20328.     auto-buffering or not!   Because the  problem lies within  the kernel it
  20329.     cannot  be  fixed  by  simply  replacing  the  COM0x.SYS or other device
  20330.     driver.  The "fix"  is one of two  options:  1) Go  back to a CSD  level
  20331.     earlier than WR04097 or 2) Upgrade to OS/2 1.3 EE.  Since there will  be
  20332.     no more CSD's released for 1.2, the "fix" is to upgrade to OS/2 1.3 EE.
  20333.  
  20334.                                 OS/2 Version 1.3
  20335.  
  20336.     As of  this writing,  IBM OS/2  v1.3 SE  and OS/2  v1.3 EE  has no known
  20337.     problems.
  20338.  
  20339.                              OS/2 Version 2.0 & 2.1
  20340.  
  20341.     The COM.SYS driver included with OS/2 2.0 and 2.1 is not very  reliable,
  20342.     causes system slowdown,  and has been  known to cause  sessions to hang.
  20343.     Unless  you're  using  a  Digiboard  or  Artic card or other intelligent
  20344.     communications coprocessor  requiring its  own device  driver, we highly
  20345.     recommend replacing your COM.SYS (and VCOM.SYS) drivers with Ray Gwinn's
  20346.     comm drivers.  Ray's drivers are many times faster, extremely  reliable,
  20347.     and work with all machine types  (ISA, EISA, Microchannel, etc).  As  of
  20348.     this  writing,  the  current  release  of  Ray  Gwinn's comm drivers are
  20349.     SIO102.ZIP and can  be downloaded from  our BBS.   Read the instructions
  20350.     within for installation information, and by all means, help Ray out with
  20351.     a contribution to  his fabulous development  efforts.  If  you find that
  20352.     Ray's drivers work well for you, he sells 4, 6, 8, and 16-port  versions
  20353.     of those drivers.
  20354.  
  20355.                                    DOS DOORS
  20356.  
  20357.     If you're using  OS/2 2.1, YES  - you can  run DOS doors!!   A 3rd-party
  20358.     program is available  for download from  our BBS.   As of this  writing,
  20359.     download the following two files:  MAGFOSS.ZIP & FOSSDM05.ZIP  (requires
  20360.     OS/2 2.xx or 3.xx).
  20361.  
  20362.                              ZIP Compression Format
  20363.  
  20364.     No matter which version of OS/2 you're using, download UNZIP16.EXE  from
  20365.     our BBS, rename it to PKUZNIP2.EXE and place it in your EXT_DIR (or keep
  20366.     the name as UNZIP16.EXE and modify your COMPRESS.LST file  accordingly).
  20367.     PK-Ware has NOT (as of this  writing) released an OS/2 version of  their
  20368.     2.04G ZIP compression format, this 3rd-party program (UNZIP16.EXE)  will
  20369.     solve this  problem until  they do!   Also,  be advised  that since many
  20370.     users  (callers)  will  be  uploading  files  in this new format, unless
  20371.     you're  using  UNZIP16.EXE,  those  files  will  fail  the  zip   'Test'
  20372.     automatically  performed  after  upload  unless  you  use   UNZIP16.EXE.
  20373.     Additionally, callers uploading messages in the QWK message format (.REP
  20374.     file) will also be using the  new format (2.04G) which will require  the
  20375.     use of the UNZIP16.EXE program.   The sooner you download  this program,
  20376.     the better!  We  are unable to distribute  this program with the  Magnum
  20377.     system.  We  have a license  to distribute PK-Ware's  ZIP utilities, but
  20378.     ironically these  utilities are  obsolete until  PK-Ware releases  a new
  20379.  
  20380.  
  20381.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20382.  
  20383.  
  20384.  
  20385.     Page  18-6                                   General and Closing Remarks
  20386.                                                              Closing Remarks
  20387.  
  20388.  
  20389.     up-to-date OS/2 version of their own utilities!
  20390.  
  20391.                       SUMMARY OF IMPORTANT CONSIDERATIONS:
  20392.  
  20393.     From time to time in OS/2 2.1 when a session starts (as an icon), the OS
  20394.     will place the icon for that  session directly over an icon for  another
  20395.     session.  Moving (dragging) that icon  out of the way reveals the  other
  20396.     icon underneath it.
  20397.  
  20398.     OS/2 2.x doesn't seem to want to  display our icon file.  To get  around
  20399.     this, create the following statements in your MBBS.ACE file:
  20400.  
  20401.          *,1 icon d:\magnum\pgm_dir\msession.ico
  20402.          *,2 icon d:\magnum\pgm_dir\msession.ico
  20403.          .
  20404.          .
  20405.          .
  20406.  
  20407.     of course, you'll need to substitue  the path name you're using on  your
  20408.     system; and the three  dots merely represent additional  statements, one
  20409.     for each node you  have on your system.   In that these  are "immediate"
  20410.     commands (read only on  startup), you'll need to  shut down the bbs  and
  20411.     restart it in order for these commands to "take".
  20412.  
  20413.  
  20414.  
  20415.  
  20416.  
  20417.  
  20418.  
  20419.  
  20420.  
  20421.  
  20422.  
  20423.  
  20424.  
  20425.  
  20426.  
  20427.  
  20428.  
  20429.  
  20430.  
  20431.  
  20432.  
  20433.  
  20434.  
  20435.  
  20436.  
  20437.  
  20438.  
  20439.  
  20440.  
  20441.  
  20442.  
  20443.  
  20444.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20445.  
  20446.  
  20447.  
  20448.     Index                                                          Page  I-1
  20449.  
  20450.  
  20451.  
  20452.                                      - . -
  20453.  
  20454.   .SNP ..................... 9-5, 9-60
  20455.  
  20456.                                      - < -
  20457.  
  20458.   <F6> ..................... 5-18
  20459.   <F7> ..................... 5-17, 7-5
  20460.  
  20461.                                      - @ -
  20462.  
  20463.   @# ....................... 4-22
  20464.   @A ....................... 1-30, 4-3
  20465.   @B ....................... 4-4, 4-7, 4-33, 4-53
  20466.   @C ....................... 4-6
  20467.   @D ....................... 4-10
  20468.   @E ....................... 4-12, 4-15, 4-16, 4-17, 4-18, 7-41
  20469.   @I ....................... 4-19, 4-20, 9-3, 9-4, 9-7
  20470.   @J ....................... 4-21
  20471.   @K ....................... 4-22
  20472.   @L ....................... 4-23
  20473.   @M ....................... 4-24
  20474.   @N ....................... 4-4, 4-7, 4-19, 4-25, 4-26, 4-27, 4-34, 4-35,
  20475.                              4-48, 4-53, 6-20
  20476.   @O ....................... 4-7, 4-28, 4-30, 4-47, 7-35
  20477.   @P ....................... 4-4, 4-33
  20478.   @R ....................... 4-34
  20479.   @S ....................... 1-20, 4-36
  20480.   @T ....................... 4-37
  20481.   @U ....................... 4-7, 4-38, 4-47, 4-52
  20482.   @V ....................... 4-42, 4-47
  20483.   @W ....................... 4-44
  20484.   @Y ....................... 4-21
  20485.   @Z ....................... 4-4, 4-5, 4-7, 4-9, 4-19, 4-34, 4-35, 4-45, 4-46,
  20486.                              4-53, 6-20
  20487.   @\ ....................... 4-49
  20488.  
  20489.                                      - A -
  20490.  
  20491.   ACCOUNT TYPE ............. 2-6, 2-7, 4-41, 16-3, 16-4, 17-2
  20492.   ACE ...................... 2-3, 5-5, 5-11, 5-12, 5-14, 5-21, 6-3, 8-1, 8-2,
  20493.                              8-3, 8-4, 8-5, 8-6, 15-9, 18-4
  20494.   AMMO ..................... 2-4, 2-5, 6-4, 7-32, 15-1, 15-2, 15-3, 15-4,
  20495.                              15-5, 15-6, 15-7, 15-8, 15-9
  20496.   ANNOUNCE ................. 1-10, 2-2, 2-17, 5-1, 5-7, 5-8, 6-3, 8-3, 8-4
  20497.   ANSI-EDITOR .............. 7-13, 7-14
  20498.   ARQ ...................... 1-36, 1-37, 1-38, 7-21
  20499.  
  20500.                                      - B -
  20501.  
  20502.   BELL ..................... 5-1, 5-3, 5-4, 7-5
  20503.   Blockwrite ............... 5-13
  20504.   Blog() ................... 9-29, 9-37, 9-38, 9-59, 9-62
  20505.  
  20506.  
  20507.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20508.  
  20509.  
  20510.  
  20511.     Page  I-2                                                          Index
  20512.  
  20513.  
  20514.  
  20515.                                      - C -
  20516.  
  20517.   CALLS ALL ................ 5-15
  20518.   CALLS MAIL ............... 5-15
  20519.   CC List .................. 12-1, 12-2
  20520.   CD-ROM ................... 2-2, 3-5, 3-7, 9-10
  20521.   CONDENSE ................. 5-12, 5-13, 5-14
  20522.   CTS ...................... 1-1
  20523.   Call() ................... 9-29, 9-46, 9-48
  20524.   Carrier .................. 1-10, 1-15, 1-36, 1-37, 1-38, 2-4, 4-7, 5-1, 5-3,
  20525.                              5-9, 5-10, 6-1, 9-13, 18-3
  20526.   Chat ..................... 1-17, 1-31, 2-15, 3-3, 4-31, 5-10, 5-17, 6-20,
  20527.                              7-5, 7-6, 13-2
  20528.   Child .................... 1-10, 1-31, 2-2, 2-6, 2-12, 2-13, 4-31, 4-42,
  20529.                              4-43, 6-1, 6-3, 6-16, 7-10, 7-17, 7-28, 7-40,
  20530.                              7-42, 9-32, 9-53, 9-59, 16-3
  20531.   Clog() ................... 9-29, 9-38, 9-47, 9-62
  20532.   Compression .............. 2-4, 2-12, 3-4, 4-40, 6-4, 6-5, 6-6, 6-7, 6-8,
  20533.                              7-2, 7-7, 7-27, 7-28, 9-7, 18-5
  20534.   Crash Recovery ........... 7-21
  20535.  
  20536.                                      - D -
  20537.  
  20538.   DCE ...................... 1-10, 18-3
  20539.   DOS DOORS ................ 18-5
  20540.   DTE ...................... 1-10, 1-11, 1-14, 7-8, 18-3
  20541.   DTR ...................... 1-1, 1-6, 18-3
  20542.   Door ..................... 2-12, 2-13, 4-16, 11-1
  20543.  
  20544.                                      - E -
  20545.  
  20546.   E-mail ................... 1-20, 1-21, 2-2, 2-7, 2-14, 6-2, 7-8, 9-8, 12-2,
  20547.                              17-1, 17-2, 17-3, 17-4, 17-5, 17-6, 17-7, 17-8,
  20548.                              18-3
  20549.   ENDNOW ................... 1-6, 5-9, 5-10
  20550.   EQUATE ................... 9-45, 9-56, 9-57, 9-61
  20551.   ERRLOG ................... 5-15
  20552.   Environment .............. 4-10, 4-46, 6-1, 7-28, 17-8
  20553.   Error Correction ......... 4-40, 9-13
  20554.   Exit() ................... 9-29, 9-30
  20555.   External File Compression  2-4
  20556.   External file compression  2-4
  20557.   Extract() ................ 9-54, 9-55
  20558.  
  20559.                                      - F -
  20560.  
  20561.   FAXMODEM ................. 1-38
  20562.   FILE MENU ................ 1-28, 1-29, 1-32, 2-10, 3-4, 4-8, 6-12, 6-13,
  20563.                              6-15
  20564.   FILE_ID.DIZ .............. 7-24, 10-2
  20565.   FORCEOFF ................. 5-3, 5-4
  20566.   FRAMECOLOR ............... 5-15
  20567.   FSTART ................... 9-60, 9-61, 9-62
  20568.  
  20569.  
  20570.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20571.  
  20572.  
  20573.  
  20574.     Index                                                          Page  I-3
  20575.  
  20576.  
  20577.   FSTOP .................... 9-60, 9-61, 9-62
  20578.   File group ............... 4-41, 9-7, 14-1, 14-2
  20579.   Form Letters ............. 9-1, 9-35
  20580.  
  20581.                                      - G -
  20582.  
  20583.   Goto() ................... 9-48
  20584.  
  20585.                                      - H -
  20586.  
  20587.   Handshake ................ 1-36
  20588.  
  20589.                                      - I -
  20590.  
  20591.   Icon ..................... 2-3, 5-3, 5-5, 5-20, 18-6
  20592.   If() { ................... 9-62
  20593.   Indirect addressing ...... 4-49, 4-52, 4-53, 4-54, 4-55, 9-43, 9-44, 9-54,
  20594.                              9-64
  20595.   Initialization ........... 1-12, 3-2, 4-34, 9-2, 9-14
  20596.   Input() .................. 9-29, 9-39, 9-47
  20597.   Internet ................. 1-20, 1-21, 2-2, 2-7, 2-14, 4-41, 4-43, 6-2, 7-8,
  20598.                              7-36, 9-8, 12-2, 16-3, 17-1, 17-2, 17-3, 17-4,
  20599.                              17-5, 17-6, 17-7, 17-8
  20600.   Internet Service Provider  17-1, 17-4
  20601.  
  20602.                                      - L -
  20603.  
  20604.   LAN ...................... 1-3, 1-7, 1-9, 1-11, 2-2, 2-3, 7-5, 7-39, 10-1,
  20605.                              13-1, 13-2, 13-3, 15-2
  20606.   LINE-EDITOR .............. 7-15
  20607.   LOCKOUT .................. 5-6, 7-16
  20608.   LOGOCOLOR ................ 5-15
  20609.   LOGON .................... 1-5, 1-7, 1-19, 1-26, 2-4, 2-6, 2-7, 2-10, 2-17,
  20610.                              3-2, 3-3, 4-17, 4-31, 4-36, 5-1, 5-5, 5-7, 5-8,
  20611.                              5-14, 6-2, 6-3, 6-4, 6-8, 6-9, 6-11, 6-14, 6-17,
  20612.                              7-1, 7-2, 7-3, 7-18, 7-28, 7-38, 15-4, 15-5,
  20613.                              16-3, 16-4
  20614.   Log() .................... 9-33, 9-34, 9-37, 9-38, 9-59, 9-62
  20615.  
  20616.                                      - M -
  20617.  
  20618.   MAIN MENU ................ 1-5, 1-20, 1-23, 1-24, 1-28, 1-29, 1-31, 1-32,
  20619.                              1-33, 2-4, 2-6, 2-7, 2-11, 4-36, 6-4, 6-12, 6-13,
  20620.                              7-1, 7-3, 7-4, 7-5, 7-6, 7-7, 7-8, 7-9, 7-10,
  20621.                              7-11, 7-14, 7-30, 7-39, 7-41, 11-1, 16-3, 16-4
  20622.   MBBSINIT ................. 1-7, 1-34, 2-2, 3-1, 3-2, 3-5, 4-40, 5-7, 5-8,
  20623.                              6-2, 6-3, 9-2, 9-3, 9-10, 9-59, 10-2, 16-2, 17-2,
  20624.                              17-3, 17-4, 17-5, 17-7
  20625.   MESSAGE MENU ............. 1-28, 1-29, 1-31, 2-11, 4-34, 6-12, 6-13, 7-4,
  20626.                              7-11, 7-12, 7-13, 7-14, 7-15, 7-16, 7-17, 7-26
  20627.   MILC_CMDS ................ 1-24, 4-1, 4-49, 4-50, 7-35, 15-10
  20628.   MNP ...................... 1-14, 1-16, 1-36, 1-37, 7-21, 9-13
  20629.   Magnum-to-Magnum ......... 5-15, 7-32, 15-1, 15-2, 15-3, 15-4, 15-5, 15-6,
  20630.                              15-7, 15-8, 15-9, 15-10
  20631.  
  20632.  
  20633.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20634.  
  20635.  
  20636.  
  20637.     Page  I-4                                                          Index
  20638.  
  20639.  
  20640.   Mail account ............. 15-4, 15-8, 17-1, 17-3, 17-6
  20641.   Mailing Labels ........... 9-1, 9-33, 9-35
  20642.   Marked files ............. 2-16, 7-18, 7-28
  20643.   Marking .................. 7-14, 12-1
  20644.   Message group ............ 9-7
  20645.  
  20646.                                      - N -
  20647.  
  20648.   NotePad .................. 2-16, 6-21, 7-14, 12-1, 12-2, 15-4
  20649.   NotePad Facility ......... 12-1, 12-2
  20650.  
  20651.                                      - O -
  20652.  
  20653.   OUTSIDE MAIL ............. 1-23, 2-7, 4-32, 4-41, 7-11, 7-36, 9-8, 12-2,
  20654.                              16-1, 16-2, 16-3, 16-4, 17-1, 17-3, 17-4, 17-6
  20655.   OUTSIDE MAIL ID .......... 4-32, 12-2, 16-3, 17-1
  20656.   Offline .................. 2-14, 10-1, 11-1, 16-1, 16-2, 16-3
  20657.  
  20658.                                      - P -
  20659.  
  20660.   PLAY ..................... 5-14, 16-2
  20661.   POWER .................... 3-1, 4-18, 4-20, 4-26, 4-27, 4-34, 4-48, 9-23,
  20662.                              9-25, 9-59
  20663.   PRTY ..................... 5-14
  20664.  
  20665.                                      - Q -
  20666.  
  20667.   QWK ...................... 1-30, 2-5, 2-6, 2-7, 11-1, 16-1, 16-2, 16-3, 18-5
  20668.  
  20669.                                      - R -
  20670.  
  20671.   RJE ...................... 1-17, 1-24, 1-28, 1-31, 1-32, 2-2, 2-4, 2-6,
  20672.                              2-10, 2-14, 2-15, 4-8, 4-12, 4-13, 4-14, 4-31,
  20673.                              4-40, 4-42, 4-43, 6-2, 6-8, 6-12, 6-13, 6-17,
  20674.                              7-2, 7-4, 7-8, 7-10, 7-17, 7-28, 7-39, 7-40,
  20675.                              7-41, 7-42, 9-1, 9-3, 9-5, 9-7, 9-8, 9-12, 9-13,
  20676.                              9-14, 9-22, 9-28, 9-59, 11-1, 13-3, 16-1, 16-2,
  20677.                              16-3, 18-3, 18-4
  20678.   RMAIL .................... 1-22, 5-15, 7-36, 15-1, 15-2, 15-3, 15-4, 15-6,
  20679.                              15-7, 15-8, 15-9
  20680.   RTS ...................... 1-1
  20681.   Redirected serial port ... 1-11
  20682.   Refresh .................. 4-17, 5-11
  20683.   Remap .................... 2-3, 13-3
  20684.   Remote Mail .............. 1-22, 2-4, 2-5, 4-41, 5-15, 6-4, 7-15, 7-36, 9-7,
  20685.                              12-2, 15-1, 15-2, 15-3, 15-4, 15-5, 15-6, 15-7,
  20686.                              15-8, 15-9, 15-10
  20687.   Remote Snoop ............. 1-27, 7-38
  20688.   Restore_data() ........... 4-50, 9-52
  20689.   Return(x) ................ 9-47, 9-61, 9-63, 9-64
  20690.  
  20691.                                      - S -
  20692.  
  20693.   SNOOP .................... 1-27, 1-33, 5-3, 7-38
  20694.  
  20695.  
  20696.     MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20697.  
  20698.  
  20699.  
  20700.     Index                                                          Page  I-5
  20701.  
  20702.  
  20703.   SPECIAL .................. 1-10, 1-20, 1-36, 1-37, 1-38, 3-3, 7-6, 7-22,
  20704.                              7-25, 9-8, 9-16, 9-19, 9-20, 9-31, 9-64, 18-3
  20705.   STARTUP .................. 1-1, 1-5, 1-6, 1-7, 1-8, 1-10, 1-12, 1-13, 1-14,
  20706.                              1-18, 1-19, 1-23, 1-24, 1-29, 1-30, 1-34, 1-35,
  20707.                              1-36, 1-37, 1-38, 2-2, 2-7, 3-1, 3-2, 3-3, 3-6,
  20708.                              4-1, 4-9, 4-40, 4-42, 4-43, 5-5, 5-8, 5-14, 5-15,
  20709.                              5-16, 5-19, 5-23, 6-2, 6-3, 6-8, 6-9, 6-14, 7-3,
  20710.                              7-4, 7-7, 7-9, 7-16, 7-19, 7-26, 7-40, 7-42, 8-1,
  20711.                              8-3, 9-7, 9-13, 9-51, 9-52, 9-65, 11-1, 13-1,
  20712.                              13-2, 13-3, 15-10, 16-2, 16-3, 17-1, 17-2, 17-4,
  20713.                              17-5
  20714.   SWITCH ................... 1-4, 1-5, 1-6, 5-3, 5-4, 5-5, 5-17, 7-5, 7-7,
  20715.                              7-9, 7-20, 7-38, 7-40, 9-7
  20716.   SYSOP MENU ............... 1-5, 1-10, 1-28, 1-31, 1-33, 2-7, 5-6, 6-4, 6-12,
  20717.                              6-13, 7-1, 7-9, 7-18, 7-29, 7-30, 7-31, 7-32,
  20718.                              7-33, 7-34, 7-35, 7-36, 7-37, 7-38, 7-39, 7-40,
  20719.                              9-28, 10-2, 14-1, 14-2, 15-5, 16-1, 16-3, 16-4,
  20720.                              17-1, 17-2
  20721.   Save_data() .............. 4-50, 9-52
  20722.   Security Level ........... 1-19, 1-25, 1-26, 1-29, 1-31, 2-4, 2-17, 4-23,
  20723.                              4-39, 5-6, 6-9, 6-12, 6-13, 7-4, 7-6, 7-9, 7-19,
  20724.                              7-30, 7-34, 7-35, 9-1, 9-6, 9-13, 9-18, 9-22,
  20725.                              9-23, 9-56, 14-1, 14-2, 17-1, 17-2, 17-4
  20726.   Server ................... 1-3, 1-9, 1-11, 10-3, 13-2, 13-3
  20727.   Shutdown ................. 5-1, 5-4, 5-9, 5-10, 7-38, 8-4, 8-6, 17-4
  20728.   Slog() ................... 9-29, 9-37, 9-38, 9-62
  20729.   Sysbell .................. 5-12
  20730.   System() ................. 9-29, 9-50, 9-52, 9-63
  20731.  
  20732.                                      - T -
  20733.  
  20734.   TIME+NNN ................. 5-7
  20735.  
  20736.                                      - U -
  20737.  
  20738.   UUCP ..................... 17-1, 17-5
  20739.   Uudecode ................. 17-6, 17-7
  20740.   Uuencode ................. 17-6, 17-8
  20741.  
  20742.                                      - W -
  20743.  
  20744.   While() .................. 9-29, 9-40, 9-60, 9-62
  20745.   While() { ................ 9-62
  20746.   Workstation .............. 1-3, 13-1, 13-2, 13-3
  20747.  
  20748.                                      - Y -
  20749.  
  20750.   Ymodem ................... 7-21
  20751.   Ymodem-G ................. 1-9, 7-18, 7-21
  20752.  
  20753.                                      - Z -
  20754.  
  20755.   ZIP Compression Format ... 18-5
  20756.   Zmodem ................... 2-7, 7-21, 16-4
  20757.  
  20758.  
  20759.             MAGNUM BBS (r) for OS/2 - (C)Copyright 1989,1996 Gilmore Systems
  20760.  
  20761.  
  20762.  
  20763.  
  20764.  
  20765.  
  20766.  
  20767.  
  20768.  
  20769.  
  20770.  
  20771.  
  20772.  
  20773.  
  20774.  
  20775.  
  20776.  
  20777.  
  20778.  
  20779.  
  20780.  
  20781.  
  20782.  
  20783.  
  20784.  
  20785.  
  20786.  
  20787.  
  20788.  
  20789.  
  20790.  
  20791.  
  20792.                          This Page Intentionally Blank
  20793.  
  20794.